From a3d6cf37cbe6c5e822bf997bdbc3bc96da67c255 Mon Sep 17 00:00:00 2001 From: Hampus Kraft Date: Mon, 14 Sep 2026 17:39:19 +0200 Subject: [PATCH] fix(guild): render activity log entries deterministically (#2766) --- fluxer_admin/build.rs | 46 + fluxer_admin/openapi-admin.json | 79 +- fluxer_admin/src/api/types/instance_config.rs | 79 + fluxer_admin/src/routes/system_actions.rs | 65 +- .../src/templates/pages/instance_config.rs | 107 +- fluxer_admin/tests/api_deserialization.rs | 112 ++ .../InstanceConfigAdminController.ts | 17 + .../channel/controllers/ChannelController.ts | 18 +- .../channel/controllers/MessageController.ts | 10 +- .../MessageInteractionController.ts | 4 + .../channel/services/ChannelDataService.ts | 3 + .../channel/services/ChannelRequestService.ts | 4 + .../services/MessageInteractionService.ts | 8 +- .../channel_data/ChannelOperationsService.ts | 119 +- .../services/interaction/MessagePinService.ts | 8 +- .../services/message/MessageDeleteService.ts | 8 +- .../api/experiment/ExperimentController.ts | 7 + .../tests/ExperimentController.test.ts | 82 +- .../src/api/guild/GuildAuditLogEntryMapper.ts | 247 +++ .../src/api/guild/GuildAuditLogService.ts | 85 +- .../api/guild/services/GuildMemberService.ts | 28 +- .../guild/services/GuildModerationService.ts | 6 +- .../api/guild/services/GuildRoleService.ts | 73 +- .../src/api/guild/services/GuildService.ts | 148 +- .../guild/services/data/GuildDataHelpers.ts | 7 +- .../services/data/GuildOperationsService.ts | 31 +- .../services/data/GuildOwnershipService.ts | 5 +- .../guild/services/data/GuildVanityService.ts | 8 +- .../member/GuildMemberOperationsService.ts | 7 + .../services/role/RoleOrderAuditUtils.ts | 44 + .../role/tests/RoleOrderAuditUtils.test.ts | 128 ++ .../tests/GuildAuditLogChannelWriters.test.ts | 266 +++ .../tests/GuildAuditLogContentWriters.test.ts | 184 ++ .../tests/GuildAuditLogEntryMapper.test.ts | 469 +++++ .../tests/GuildAuditLogGuildWriters.test.ts | 183 ++ .../tests/GuildAuditLogMemberWriters.test.ts | 386 ++++ .../tests/GuildAuditLogMessageWriters.test.ts | 162 ++ .../tests/GuildAuditLogRoleWriters.test.ts | 274 +++ .../guild/tests/GuildAuditLogService.test.ts | 378 ++++ .../api/guild/tests/GuildAuditLogs.test.ts | 5 +- .../instance/InstanceConfigRepository.test.ts | 54 + .../api/instance/InstanceConfigRepository.ts | 25 + fluxer_api/src/api/openapi/openapi.json | 34 +- .../src/api/utils/AuditSerializationUtils.ts | 3 +- .../features/app/config/AuditLogConstants.ts | 209 +- .../guild_tabs/GuildAuditLogSentence.test.tsx | 414 ++++ .../guild_tabs/GuildAuditLogSentence.tsx | 247 +++ .../guild_tabs/GuildAuditLogTab.module.css | 36 +- .../guild_tabs/GuildAuditLogTab.test.tsx | 269 +++ .../modals/guild_tabs/GuildAuditLogTab.tsx | 984 ++++++++-- .../guild_tabs/GuildAuditLogTabComponents.tsx | 49 - .../guild_tabs/GuildAuditLogTabRenderers.tsx | 9 +- ...uildActivityLogPresentationRollout.test.ts | 94 + .../GuildActivityLogPresentationRollout.ts | 20 + .../audit_log/AuditLogChannelMessages.ts | 387 ++++ .../AuditLogChannelPresentation.test.ts | 1050 ++++++++++ .../audit_log/AuditLogChannelPresentation.ts | 632 ++++++ .../AuditLogExpressionMessageMessages.ts | 154 ++ ...itLogExpressionMessagePresentation.test.ts | 645 ++++++ .../AuditLogExpressionMessagePresentation.ts | 296 +++ .../audit_log/AuditLogGuildMessages.ts | 315 +++ .../AuditLogGuildPresentation.test.ts | 754 +++++++ .../audit_log/AuditLogGuildPresentation.ts | 636 ++++++ .../AuditLogInviteWebhookMessages.ts | 159 ++ .../AuditLogInviteWebhookPresentation.test.ts | 641 ++++++ .../AuditLogInviteWebhookPresentation.ts | 324 +++ .../audit_log/AuditLogMemberMessages.ts | 416 ++++ .../AuditLogMemberPresentation.test.ts | 1249 ++++++++++++ .../audit_log/AuditLogMemberPresentation.ts | 697 +++++++ .../audit_log/AuditLogMessagesLint.test.ts | 116 ++ .../audit_log/AuditLogPresentation.test.ts | 273 +++ .../audit_log/AuditLogPresentation.ts | 122 ++ .../audit_log/AuditLogPresentationTypes.ts | 58 + .../audit_log/AuditLogRoleMessages.ts | 174 ++ .../AuditLogRolePresentation.test.ts | 649 ++++++ .../audit_log/AuditLogRolePresentation.ts | 383 ++++ .../audit_log/AuditLogSharedMessages.ts | 95 + .../guild_tabs/audit_log/AuditLogTestUtils.ts | 160 ++ .../audit_log/AuditLogValues.test.ts | 380 ++++ .../guild_tabs/audit_log/AuditLogValues.ts | 181 ++ .../src/features/i18n/locales/ar/messages.po | 1747 +++++++++++++++- .../locales/auto-i18n-reviewed-unchanged.json | 1413 +++++++++++++ .../src/features/i18n/locales/bg/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/cs/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/da/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/de/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/el/messages.po | 1747 +++++++++++++++- .../features/i18n/locales/en-GB/messages.po | 1748 ++++++++++++++++- .../features/i18n/locales/en-US/messages.po | 1747 +++++++++++++++- .../features/i18n/locales/es-419/messages.po | 1747 +++++++++++++++- .../features/i18n/locales/es-ES/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/fi/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/fr/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/he/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/hi/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/hr/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/hu/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/id/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/it/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/ja/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/ko/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/lt/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/nl/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/no/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/pl/messages.po | 1747 +++++++++++++++- .../features/i18n/locales/pt-BR/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/ro/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/ru/messages.po | 1747 +++++++++++++++- .../features/i18n/locales/sv-SE/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/th/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/tr/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/uk/messages.po | 1747 +++++++++++++++- .../src/features/i18n/locales/vi/messages.po | 1747 +++++++++++++++- .../features/i18n/locales/zh-CN/messages.po | 1747 +++++++++++++++- .../features/i18n/locales/zh-TW/messages.po | 1747 +++++++++++++++- fluxer_docs/scripts/VerifyDocsStyle.ts | 3 +- .../src/content/docs/admin-api/instance.mdx | 27 +- .../src/content/docs/gateway/events.md | 4 +- .../src/content/docs/http-api/channels.mdx | 14 +- .../src/content/docs/http-api/experiments.mdx | 32 +- .../docs/http-api/guild-audit-logs.mdx | 104 +- .../content/docs/http-api/guild-emojis.mdx | 2 +- .../content/docs/http-api/guild-members.mdx | 14 +- .../docs/http-api/guild-moderation.mdx | 4 +- .../content/docs/http-api/guild-stickers.mdx | 2 +- .../src/content/docs/http-api/messages.mdx | 18 +- .../src/content/docs/http-api/permissions.mdx | 8 +- .../src/content/docs/http-api/premium.mdx | 2 +- knip.json | 1 + .../schema/src/domains/admin/AdminSchemas.ts | 6 + .../domains/experiment/ExperimentSchemas.ts | 11 + .../GuildActivityLogPresentationSchemas.ts | 41 + .../src/domains/guild/GuildAuditLogSchemas.ts | 27 +- .../guild/tests/GuildAuditLogSchemas.test.ts | 54 + ...uildActivityLogPresentationSchemas.test.ts | 98 + 135 files changed, 75869 insertions(+), 2708 deletions(-) create mode 100644 fluxer_api/src/api/guild/GuildAuditLogEntryMapper.ts create mode 100644 fluxer_api/src/api/guild/services/role/RoleOrderAuditUtils.ts create mode 100644 fluxer_api/src/api/guild/services/role/tests/RoleOrderAuditUtils.test.ts create mode 100644 fluxer_api/src/api/guild/tests/GuildAuditLogChannelWriters.test.ts create mode 100644 fluxer_api/src/api/guild/tests/GuildAuditLogContentWriters.test.ts create mode 100644 fluxer_api/src/api/guild/tests/GuildAuditLogEntryMapper.test.ts create mode 100644 fluxer_api/src/api/guild/tests/GuildAuditLogGuildWriters.test.ts create mode 100644 fluxer_api/src/api/guild/tests/GuildAuditLogMemberWriters.test.ts create mode 100644 fluxer_api/src/api/guild/tests/GuildAuditLogMessageWriters.test.ts create mode 100644 fluxer_api/src/api/guild/tests/GuildAuditLogRoleWriters.test.ts create mode 100644 fluxer_api/src/api/guild/tests/GuildAuditLogService.test.ts create mode 100644 fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.test.tsx create mode 100644 fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx create mode 100644 fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.test.tsx create mode 100644 fluxer_app/src/features/guild/state/GuildActivityLogPresentationRollout.test.ts create mode 100644 fluxer_app/src/features/guild/state/GuildActivityLogPresentationRollout.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelPresentation.test.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelPresentation.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessagePresentation.test.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessagePresentation.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildPresentation.test.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildPresentation.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookPresentation.test.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookPresentation.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberPresentation.test.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberPresentation.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogMessagesLint.test.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogPresentation.test.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogPresentation.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogPresentationTypes.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogRolePresentation.test.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogRolePresentation.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogTestUtils.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogValues.test.ts create mode 100644 fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogValues.ts create mode 100644 packages/schema/src/domains/experiment/GuildActivityLogPresentationSchemas.ts create mode 100644 packages/schema/src/domains/guild/tests/GuildAuditLogSchemas.test.ts create mode 100644 packages/schema/src/domains/tests/GuildActivityLogPresentationSchemas.test.ts diff --git a/fluxer_admin/build.rs b/fluxer_admin/build.rs index 2a72153b3..b092fe6a8 100644 --- a/fluxer_admin/build.rs +++ b/fluxer_admin/build.rs @@ -38,6 +38,7 @@ fn generate_admin_api(manifest_dir: &Path, out_dir: &Path) { let mut spec: openapiv3::OpenAPI = serde_json::from_str(&json_str).expect("failed to parse openapi-admin.json"); adapt_progenitor_throttled_errors(&mut spec); + relax_guild_audit_log_schemas(&mut spec); let mut settings = progenitor::GenerationSettings::new(); settings.with_interface(progenitor::InterfaceStyle::Positional); @@ -141,6 +142,51 @@ fn adapt_progenitor_throttled_errors(spec: &mut openapiv3::OpenAPI) { } } +fn relax_guild_audit_log_schemas(spec: &mut openapiv3::OpenAPI) { + let components = spec.components.as_mut().expect("missing API components"); + + let entry = object_schema_mut(components, "GuildAuditLogEntryResponse"); + entry.additional_properties = None; + let openapiv3::ReferenceOr::Item(options) = entry + .properties + .get_mut("options") + .expect("GuildAuditLogEntryResponse has no options property") + else { + panic!("GuildAuditLogEntryResponse options must be an inline schema"); + }; + let openapiv3::SchemaKind::Type(openapiv3::Type::Object(options)) = &mut options.schema_kind + else { + panic!("GuildAuditLogEntryResponse options must be an object schema"); + }; + options.additional_properties = None; + + let change = object_schema_mut(components, "AuditLogChangeSchema"); + change.additional_properties = None; + for property in ["old_value", "new_value"] { + change.properties.insert( + property.to_string(), + openapiv3::ReferenceOr::Item(Box::new(openapiv3::Schema { + schema_data: openapiv3::SchemaData::default(), + schema_kind: openapiv3::SchemaKind::Any(openapiv3::AnySchema::default()), + })), + ); + } +} + +fn object_schema_mut<'a>( + components: &'a mut openapiv3::Components, + name: &str, +) -> &'a mut openapiv3::ObjectType { + let Some(openapiv3::ReferenceOr::Item(schema)) = components.schemas.get_mut(name) else { + panic!("missing inline {name} schema"); + }; + let openapiv3::SchemaKind::Type(openapiv3::Type::Object(object)) = &mut schema.schema_kind + else { + panic!("{name} must be an object schema"); + }; + object +} + struct Face { css_family: String, weight: u64, diff --git a/fluxer_admin/openapi-admin.json b/fluxer_admin/openapi-admin.json index cc9e3db14..7b14d9c5f 100644 --- a/fluxer_admin/openapi-admin.json +++ b/fluxer_admin/openapi-admin.json @@ -10562,6 +10562,9 @@ }, "gateway_rollout": {"$ref": "#/components/schemas/GatewayRolloutConfigResponse"}, "voice_noise_suppression": {"$ref": "#/components/schemas/VoiceNoiseSuppressionConfigResponse"}, + "guild_activity_log_presentation": { + "$ref": "#/components/schemas/GuildActivityLogPresentationConfigResponse" + }, "experiment_delivery": {"$ref": "#/components/schemas/ExperimentDeliveryConfigResponse"}, "message_hover_tracking": {"$ref": "#/components/schemas/MessageHoverTrackingConfigResponse"}, "message_keyboard_focus": {"$ref": "#/components/schemas/MessageKeyboardFocusConfigResponse"}, @@ -10968,6 +10971,7 @@ "sso", "gateway_rollout", "voice_noise_suppression", + "guild_activity_log_presentation", "experiment_delivery", "message_hover_tracking", "message_keyboard_focus", @@ -11105,6 +11109,10 @@ "nullable": true, "allOf": [{"$ref": "#/components/schemas/VoiceNoiseSuppressionConfigUpdateRequest"}] }, + "guild_activity_log_presentation": { + "nullable": true, + "allOf": [{"$ref": "#/components/schemas/GuildActivityLogPresentationConfigUpdateRequest"}] + }, "experiment_delivery": { "nullable": true, "allOf": [{"$ref": "#/components/schemas/ExperimentDeliveryConfigUpdateRequest"}] @@ -14935,7 +14943,10 @@ "nullable": true, "type": "string" }, - "reason": {"description": "The reason provided for the action", "type": "string"}, + "reason": { + "description": "The audit log reason. For bans and timeouts without an X-Audit-Log-Reason header this is the reason sent in the request body", + "type": "string" + }, "options": { "description": "Additional options depending on action type", "type": "object", @@ -14943,15 +14954,22 @@ "channel_id": {"description": "Channel ID for relevant actions", "type": "string"}, "count": {"description": "Count of items affected", "type": "number"}, "delete_member_days": { - "description": "Number of days of messages to delete on member ban", + "description": "Deprecated. Whole days of messages deleted, written only by bans recorded before delete_message_seconds", "type": "string" }, + "delete_message_seconds": { + "description": "Seconds of the banned user's messages that the ban deleted, present only when positive", + "type": "number" + }, "id": {"description": "ID of the affected entity", "type": "string"}, "integration_type": {"description": "Type of integration", "type": "number"}, "message_id": {"description": "Message ID for relevant actions", "type": "string"}, "members_removed": {"description": "Number of members removed", "type": "number"}, - "role_name": {"description": "Name of the role", "type": "string"}, - "type": {"description": "Type identifier", "type": "number"}, + "role_name": {"description": "Name of the role when the entry was written", "type": "string"}, + "type": { + "description": "Channel type for CHANNEL_CREATE, CHANNEL_UPDATE and CHANNEL_DELETE. Overwrite target type (0 role, 1 member) for CHANNEL_OVERWRITE_*", + "type": "number" + }, "inviter_id": {"description": "ID of the user who created the invite", "type": "string"}, "max_age": {"description": "Maximum age of the invite in seconds", "type": "number"}, "max_uses": {"description": "Maximum number of uses for the invite", "type": "number"}, @@ -15238,6 +15256,24 @@ "poll_jitter_percent": {"type": "integer", "minimum": 0, "maximum": 50} } }, + "GuildActivityLogPresentationConfigUpdateRequest": { + "type": "object", + "properties": { + "enabled": {"type": "boolean"}, + "rollout_basis_points": {"type": "integer", "minimum": 0, "maximum": 10000}, + "rollout_salt": {"type": "string", "minLength": 1, "maxLength": 64}, + "included_user_ids": { + "maxItems": 1000, + "type": "array", + "items": {"type": "string", "pattern": "^\\d{1,20}$"} + }, + "excluded_user_ids": { + "maxItems": 1000, + "type": "array", + "items": {"type": "string", "pattern": "^\\d{1,20}$"} + } + } + }, "VoiceNoiseSuppressionConfigUpdateRequest": { "type": "object", "properties": { @@ -15394,6 +15430,41 @@ "required": ["poll_interval_seconds", "poll_jitter_percent"], "additionalProperties": false }, + "GuildActivityLogPresentationConfigResponse": { + "type": "object", + "properties": { + "enabled": {"default": false, "type": "boolean"}, + "config_version": {"default": 0, "type": "integer", "minimum": 0, "maximum": 9007199254740991}, + "rollout_basis_points": {"default": 0, "type": "integer", "minimum": 0, "maximum": 10000}, + "rollout_salt": { + "default": "guild-activity-log-presentation-v1", + "type": "string", + "minLength": 1, + "maxLength": 64 + }, + "included_user_ids": { + "default": [], + "maxItems": 1000, + "type": "array", + "items": {"type": "string", "pattern": "^\\d{1,20}$"} + }, + "excluded_user_ids": { + "default": [], + "maxItems": 1000, + "type": "array", + "items": {"type": "string", "pattern": "^\\d{1,20}$"} + } + }, + "required": [ + "enabled", + "config_version", + "rollout_basis_points", + "rollout_salt", + "included_user_ids", + "excluded_user_ids" + ], + "additionalProperties": false + }, "VoiceNoiseSuppressionConfigResponse": { "type": "object", "properties": { diff --git a/fluxer_admin/src/api/types/instance_config.rs b/fluxer_admin/src/api/types/instance_config.rs index 1842f768d..f9fa23042 100644 --- a/fluxer_admin/src/api/types/instance_config.rs +++ b/fluxer_admin/src/api/types/instance_config.rs @@ -30,6 +30,8 @@ pub struct InstanceConfigResponse { pub message_keyboard_focus: MessageKeyboardFocusConfigResponse, #[serde(default)] pub blocked_message_groups: BlockedMessageGroupsConfigResponse, + #[serde(default)] + pub guild_activity_log_presentation: GuildActivityLogPresentationConfigResponse, } #[derive(Clone, Debug, Deserialize, Serialize)] @@ -657,6 +659,44 @@ pub struct BlockedMessageGroupsConfigUpdateRequest { pub excluded_user_ids: Option>, } +#[derive(Clone, Debug, Deserialize, Serialize)] +#[serde(default)] +pub struct GuildActivityLogPresentationConfigResponse { + pub enabled: bool, + pub config_version: u64, + pub rollout_basis_points: u32, + pub rollout_salt: String, + pub included_user_ids: Vec, + pub excluded_user_ids: Vec, +} + +impl Default for GuildActivityLogPresentationConfigResponse { + fn default() -> Self { + Self { + enabled: false, + config_version: 0, + rollout_basis_points: 0, + rollout_salt: "guild-activity-log-presentation-v1".to_owned(), + included_user_ids: Vec::new(), + excluded_user_ids: Vec::new(), + } + } +} + +#[derive(Clone, Debug, Default, Serialize)] +pub struct GuildActivityLogPresentationConfigUpdateRequest { + #[serde(skip_serializing_if = "Option::is_none")] + pub enabled: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub rollout_basis_points: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub rollout_salt: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub included_user_ids: Option>, + #[serde(skip_serializing_if = "Option::is_none")] + pub excluded_user_ids: Option>, +} + #[derive(Clone, Debug, Deserialize, Serialize)] #[serde(default)] pub struct ExperimentDeliveryConfigResponse { @@ -780,6 +820,8 @@ pub struct InstanceConfigUpdateRequest { pub message_keyboard_focus: Option, #[serde(skip_serializing_if = "Option::is_none")] pub blocked_message_groups: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub guild_activity_log_presentation: Option, } #[derive(Clone, Debug, Default, Serialize)] @@ -1120,6 +1162,9 @@ mod tests { .expect("default message keyboard focus config"); let blocked = serde_json::from_value::(json!({})) .expect("default blocked message groups config"); + let activity_log = + serde_json::from_value::(json!({})) + .expect("default guild activity log presentation config"); let noise = serde_json::to_value(noise).expect("serializable noise config"); let delivery = serde_json::to_value(delivery).expect("serializable delivery config"); let hover = @@ -1128,6 +1173,8 @@ mod tests { serde_json::to_value(keyboard).expect("serializable message keyboard focus config"); let blocked = serde_json::to_value(blocked).expect("serializable blocked message groups config"); + let activity_log = serde_json::to_value(activity_log) + .expect("serializable guild activity log presentation config"); let generated_noise: generated_types::VoiceNoiseSuppressionConfigResponse = serde_json::from_value(noise.clone()).expect("generated noise config contract"); let generated_delivery: generated_types::ExperimentDeliveryConfigResponse = @@ -1141,6 +1188,9 @@ mod tests { let generated_blocked: generated_types::BlockedMessageGroupsConfigResponse = serde_json::from_value(blocked.clone()) .expect("generated blocked message groups config contract"); + let generated_activity_log: generated_types::GuildActivityLogPresentationConfigResponse = + serde_json::from_value(activity_log.clone()) + .expect("generated guild activity log presentation config contract"); assert_eq!( serde_json::to_value(generated_noise).expect("serializable generated noise config"), noise @@ -1165,12 +1215,18 @@ mod tests { .expect("serializable generated blocked message groups config"), blocked ); + assert_eq!( + serde_json::to_value(generated_activity_log) + .expect("serializable generated guild activity log presentation config"), + activity_log + ); for (name, value) in [ ("VoiceNoiseSuppressionConfigResponse", noise), ("ExperimentDeliveryConfigResponse", delivery), ("MessageHoverTrackingConfigResponse", hover), ("MessageKeyboardFocusConfigResponse", keyboard), ("BlockedMessageGroupsConfigResponse", blocked), + ("GuildActivityLogPresentationConfigResponse", activity_log), ] { for (field, value) in value.as_object().expect("config object") { assert_eq!( @@ -1250,6 +1306,29 @@ mod tests { ); } + #[test] + fn guild_activity_log_presentation_update_preserves_empty_lists_and_omitted_fields() { + let update = GuildActivityLogPresentationConfigUpdateRequest { + included_user_ids: Some(Vec::new()), + excluded_user_ids: Some(Vec::new()), + ..Default::default() + }; + let value = serde_json::to_value(update).expect("serializable update"); + serde_json::from_value::( + value.clone(), + ) + .expect("generated update contract"); + assert_eq!( + value, + json!({"included_user_ids": [], "excluded_user_ids": []}) + ); + assert_eq!( + serde_json::to_value(GuildActivityLogPresentationConfigUpdateRequest::default()) + .expect("serializable update"), + json!({}) + ); + } + #[test] fn noise_suppression_update_preserves_empty_lists_and_omitted_fields() { let update = VoiceNoiseSuppressionConfigUpdateRequest { diff --git a/fluxer_admin/src/routes/system_actions.rs b/fluxer_admin/src/routes/system_actions.rs index 44c4c8d73..2ee37f3f3 100644 --- a/fluxer_admin/src/routes/system_actions.rs +++ b/fluxer_admin/src/routes/system_actions.rs @@ -9,19 +9,20 @@ use crate::{ AppSetupConfigUpdateRequest, BlockedMessageGroupsConfigUpdateRequest, CreateRegistrationUrlRequest, DeferredPhoneGateUpdateRequest, ExperimentDeliveryConfigUpdateRequest, GatewayRolloutConfigUpdateRequest, - GatewayRolloutMode, InstanceAttachmentDecayUpdateRequest, - InstanceBlueskyIntegrationUpdateRequest, InstanceBlueskyKeyIntegrationUpdateRequest, - InstanceCaptchaIntegrationUpdateRequest, InstanceConfigUpdateRequest, - InstanceEmailIntegrationUpdateRequest, InstanceEmailSmtpIntegrationUpdateRequest, - InstanceEmailSmtpTestRequest, InstanceGifIntegrationUpdateRequest, - InstanceIntegrationsUpdateRequest, InstanceMediaUpdateRequest, - InstancePolicyUpdateRequest, InstanceRegistrationConfigUpdateRequest, - InstanceServicesUpdateRequest, InstanceYoutubeIntegrationUpdateRequest, - LimitConfigUpdateRequest, LimitRule, LimitRuleFilters, - MessageHoverTrackingConfigUpdateRequest, MessageKeyboardFocusConfigUpdateRequest, - NoiseSuppressionBackend, PremiumMode, RegistrationMode, SsoConfigUpdateRequest, - VOICE_NS_MAX_GUILD_OVERRIDES, VOICE_NS_MAX_TARGETED_USERS, VoiceE2eeScope, - VoiceNoiseSuppressionConfigUpdateRequest, VoiceNoiseSuppressionGuildOverride, + GatewayRolloutMode, GuildActivityLogPresentationConfigUpdateRequest, + InstanceAttachmentDecayUpdateRequest, InstanceBlueskyIntegrationUpdateRequest, + InstanceBlueskyKeyIntegrationUpdateRequest, InstanceCaptchaIntegrationUpdateRequest, + InstanceConfigUpdateRequest, InstanceEmailIntegrationUpdateRequest, + InstanceEmailSmtpIntegrationUpdateRequest, InstanceEmailSmtpTestRequest, + InstanceGifIntegrationUpdateRequest, InstanceIntegrationsUpdateRequest, + InstanceMediaUpdateRequest, InstancePolicyUpdateRequest, + InstanceRegistrationConfigUpdateRequest, InstanceServicesUpdateRequest, + InstanceYoutubeIntegrationUpdateRequest, LimitConfigUpdateRequest, LimitRule, + LimitRuleFilters, MessageHoverTrackingConfigUpdateRequest, + MessageKeyboardFocusConfigUpdateRequest, NoiseSuppressionBackend, PremiumMode, + RegistrationMode, SsoConfigUpdateRequest, VOICE_NS_MAX_GUILD_OVERRIDES, + VOICE_NS_MAX_TARGETED_USERS, VoiceE2eeScope, VoiceNoiseSuppressionConfigUpdateRequest, + VoiceNoiseSuppressionGuildOverride, }, }, config::AdminConfig, @@ -220,6 +221,12 @@ pub async fn instance_config_post( Ok(update) => instance_config_result(client.update_instance_config(&update).await), Err(message) => FlashData::error(message), }, + "update_guild_activity_log_presentation" => { + match build_guild_activity_log_presentation_update(&form) { + Ok(update) => instance_config_result(client.update_instance_config(&update).await), + Err(message) => FlashData::error(message), + } + } "update_experiment_delivery" => match build_experiment_delivery_update(&form) { Ok(update) => instance_config_result(client.update_instance_config(&update).await), Err(message) => FlashData::error(message), @@ -733,6 +740,38 @@ fn build_blocked_message_groups_update( }) } +fn build_guild_activity_log_presentation_update( + form: &MultiValueForm, +) -> Result { + Ok(InstanceConfigUpdateRequest { + guild_activity_log_presentation: Some(GuildActivityLogPresentationConfigUpdateRequest { + enabled: Some(form.bool_value("guild_activity_log_presentation_enabled")), + rollout_basis_points: parse_form_number( + form, + "guild_activity_log_presentation_rollout_basis_points", + "Rollout basis points", + 0, + EXPERIMENT_ROLLOUT_BASIS_POINTS_MAX, + )?, + rollout_salt: parse_experiment_rollout_salt( + form, + "guild_activity_log_presentation_rollout_salt", + )?, + included_user_ids: Some(parse_experiment_user_ids( + form.first("guild_activity_log_presentation_included_user_ids") + .unwrap_or_default(), + "Included user IDs", + )?), + excluded_user_ids: Some(parse_experiment_user_ids( + form.first("guild_activity_log_presentation_excluded_user_ids") + .unwrap_or_default(), + "Excluded user IDs", + )?), + }), + ..Default::default() + }) +} + fn build_experiment_delivery_update( form: &MultiValueForm, ) -> Result { diff --git a/fluxer_admin/src/templates/pages/instance_config.rs b/fluxer_admin/src/templates/pages/instance_config.rs index c70ba8b64..22858b406 100644 --- a/fluxer_admin/src/templates/pages/instance_config.rs +++ b/fluxer_admin/src/templates/pages/instance_config.rs @@ -3,7 +3,8 @@ use crate::{ api::types::{ AppPublicConfigResponse, BlockedMessageGroupsConfigResponse, - ExperimentDeliveryConfigResponse, GatewayRolloutConfigResponse, InstanceConfigResponse, + ExperimentDeliveryConfigResponse, GatewayRolloutConfigResponse, + GuildActivityLogPresentationConfigResponse, InstanceConfigResponse, InstanceIntegrationsResponse, InstanceMediaResponse, InstancePolicyResponse, InstanceRegistrationResponse, LimitConfigResponse, MessageHoverTrackingConfigResponse, MessageKeyboardFocusConfigResponse, NoiseSuppressionBackend, PendingRegistrationResponse, @@ -152,6 +153,7 @@ pub fn instance_config_page( (message_hover_tracking_section(base, csrf_token, &instance_config.message_hover_tracking)) (message_keyboard_focus_section(base, csrf_token, &instance_config.message_keyboard_focus)) (blocked_message_groups_section(base, csrf_token, &instance_config.blocked_message_groups)) + (guild_activity_log_presentation_section(base, csrf_token, &instance_config.guild_activity_log_presentation)) (experiment_delivery_section(base, csrf_token, &instance_config.experiment_delivery)) @if let Some(limit_config) = limit_config { (limit_config_section(base, limit_config)) @@ -1491,6 +1493,109 @@ fn blocked_message_groups_section( ) } +fn guild_activity_log_presentation_section( + base: &str, + csrf_token: &str, + guild_activity_log_presentation: &GuildActivityLogPresentationConfigResponse, +) -> Markup { + let status = if guild_activity_log_presentation.enabled { + ("Live", BadgeVariant::Success) + } else { + ("Inert", BadgeVariant::Default) + }; + let included_user_ids = guild_activity_log_presentation.included_user_ids.join("\n"); + let excluded_user_ids = guild_activity_log_presentation.excluded_user_ids.join("\n"); + section_card_with_description( + "Guild Activity Log Presentation", + "Picks which activity log rendering targeted clients run in community settings. A \ + targeted client renders each activity log entry through the rewritten presenters. \ + While the master switch below is off every client keeps the previous activity log \ + rendering, whatever the rest of these fields say.", + html! { + form method="post" action={(base) "/instance-config?action=update_guild_activity_log_presentation"} { + (csrf_input(csrf_token)) + div class="space-y-6" { + div class="flex flex-wrap items-center gap-2" { + h3 class="text-sm font-semibold text-neutral-900" { "Master switch" } + (badge(status.0, status.1)) + span class="text-xs text-neutral-500" { + "Config version " (guild_activity_log_presentation.config_version) + } + } + (checkbox( + "guild_activity_log_presentation_enabled", + "true", + "Serve guild activity log presentation assignments to clients", + guild_activity_log_presentation.enabled, + true, + )) + p class="text-xs text-neutral-500" { + "Off is the safe state. With this unchecked every client is told the \ + rollout is inert and keeps the previous activity log rendering, so the \ + rollout and targeting fields below have no effect at all." + } + + h3 class="text-sm font-semibold text-neutral-900" { "Rollout" } + (number_field( + "guild_activity_log_presentation_rollout_basis_points", + "Rollout (basis points)", + &guild_activity_log_presentation.rollout_basis_points.to_string(), + Some(0), Some(10000), "1", + Some("Share of users bucketed into the canary, in basis points: 0 is nobody, 100 is 1%, 10000 is everybody."), + )) + div class="flex flex-col gap-2" { + (text_input( + "guild_activity_log_presentation_rollout_salt", + "Rollout Salt", + &guild_activity_log_presentation.rollout_salt, + "guild-activity-log-presentation-v1", + )) + p class="text-xs text-neutral-500" { + "Seeds the bucketing hash. Changing it reshuffles which users fall \ + inside the percentage above. Leave it alone to keep the current \ + cohort stable." + } + } + div class="flex flex-col gap-2" { + (textarea_input( + "guild_activity_log_presentation_included_user_ids", + "Always-on User IDs", + "1500000000000000001\n1500000000000000002", + &included_user_ids, + 4, + false, + )) + p class="text-xs text-neutral-500" { + "One snowflake per line, or comma separated. These users are targeted \ + regardless of the percentage above. IDs must contain 1 to 20 decimal \ + digits. Invalid entries prevent the save. Blank entries and duplicate \ + IDs are ignored." + } + } + div class="flex flex-col gap-2" { + (textarea_input( + "guild_activity_log_presentation_excluded_user_ids", + "Never-on User IDs", + "1500000000000000003\n1500000000000000004", + &excluded_user_ids, + 4, + false, + )) + p class="text-xs text-neutral-500" { + "Same format. Exclusion wins over both the always-on list and the \ + percentage, so this is the per-user kill switch." + } + } + + (form_actions(html! { + (submit_button("Save Guild Activity Log Presentation Configuration")) + })) + } + } + }, + ) +} + fn experiment_delivery_section( base: &str, csrf_token: &str, diff --git a/fluxer_admin/tests/api_deserialization.rs b/fluxer_admin/tests/api_deserialization.rs index e09a65e66..280a4364d 100644 --- a/fluxer_admin/tests/api_deserialization.rs +++ b/fluxer_admin/tests/api_deserialization.rs @@ -1,5 +1,6 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +use fluxer_admin::api::generated::types as generated_types; use fluxer_admin::api::types; #[test] @@ -247,6 +248,117 @@ fn deserialize_audit_logs_response() { assert_eq!(resp.logs[0].metadata.get("session_count").unwrap(), "3"); } +#[test] +fn deserialize_guild_audit_logs_with_unknown_keys() { + let json = r#"{ + "audit_log_entries": [ + { + "id": "1508822460457747581", + "action_type": 22, + "user_id": "1130650140672000000", + "target_id": "1130958221824557056", + "reason": "spam", + "options": { + "delete_message_seconds": 3600, + "future_option": {"nested": true} + }, + "changes": [ + {"key": "future_change", "future_field": 1} + ], + "future_entry_field": "ignored" + }, + { + "id": "1508822460457747580", + "action_type": 31, + "user_id": "1130650140672000000", + "target_id": "1130958221824557057", + "options": { + "id": "1130958221824557057", + "type": 0, + "channel_id": "1130958221824557058", + "role_name": "Moderators" + }, + "changes": [ + {"key": "permissions_diff", "new_value": {"added": ["SEND_MESSAGES"], "removed": []}} + ] + }, + { + "id": "1508822460457747579", + "action_type": 11, + "user_id": "1130650140672000000", + "target_id": "1130958221824557059", + "options": {"type": 998}, + "changes": [ + {"key": "name", "old_value": "old-name", "new_value": "new-name"}, + {"key": "position", "old_value": 3, "new_value": 4}, + {"key": "nsfw", "new_value": true}, + {"key": "roles", "new_value": ["1130958221824557060", "1130958221824557061"]} + ] + } + ], + "users": [], + "webhooks": [] + }"#; + + let resp: generated_types::ListGuildAuditLogsResponse = serde_json::from_str(json).unwrap(); + assert_eq!(resp.audit_log_entries.len(), 3); + + let ban = &resp.audit_log_entries[0]; + assert_eq!(*ban.action_type, 22); + assert_eq!(ban.reason.as_deref(), Some("spam")); + assert!(ban.options.is_some()); + assert_eq!(ban.changes.len(), 1); + assert_eq!(ban.changes[0].key, "future_change"); + assert!(ban.changes[0].new_value.is_none()); + + let role_update = &resp.audit_log_entries[1]; + let options = role_update.options.as_ref().unwrap(); + assert_eq!(options.role_name.as_deref(), Some("Moderators")); + assert_eq!(options.channel_id.as_deref(), Some("1130958221824557058")); + assert_eq!(options.type_, Some(0.0)); + assert_eq!(role_update.changes[0].key, "permissions_diff"); + assert!(role_update.changes[0].new_value.is_some()); + + let channel_update = &resp.audit_log_entries[2]; + assert_eq!(channel_update.changes.len(), 4); + assert_eq!( + channel_update.changes[0] + .old_value + .as_ref() + .and_then(|value| value.as_str()), + Some("old-name") + ); + assert_eq!( + channel_update.changes[0] + .new_value + .as_ref() + .and_then(|value| value.as_str()), + Some("new-name") + ); + assert_eq!( + channel_update.changes[1] + .new_value + .as_ref() + .and_then(|value| value.as_i64()), + Some(4) + ); + assert_eq!( + channel_update.changes[2] + .new_value + .as_ref() + .and_then(|value| value.as_bool()), + Some(true) + ); + assert_eq!( + channel_update.changes[3] + .new_value + .as_ref() + .and_then(|value| value.as_array()) + .map(|value| value.len()), + Some(2) + ); +} + #[test] fn deserialize_search_reports_response() { let json = r#"{ diff --git a/fluxer_api/src/api/admin/controllers/InstanceConfigAdminController.ts b/fluxer_api/src/api/admin/controllers/InstanceConfigAdminController.ts index 7eb5eefbe..79e7e58e8 100644 --- a/fluxer_api/src/api/admin/controllers/InstanceConfigAdminController.ts +++ b/fluxer_api/src/api/admin/controllers/InstanceConfigAdminController.ts @@ -33,6 +33,7 @@ import {VoiceNoiseSuppressionConfigSchema} from '@fluxer/schema/src/domains/admi import {UserIdParam} from '@fluxer/schema/src/domains/common/CommonParamSchemas'; import {BlockedMessageGroupsConfigSchema} from '@fluxer/schema/src/domains/experiment/BlockedMessageGroupsSchemas'; import {ExperimentDeliveryConfigSchema} from '@fluxer/schema/src/domains/experiment/ExperimentSchemas'; +import {GuildActivityLogPresentationConfigSchema} from '@fluxer/schema/src/domains/experiment/GuildActivityLogPresentationSchemas'; import {MessageHoverTrackingConfigSchema} from '@fluxer/schema/src/domains/experiment/MessageHoverTrackingSchemas'; import {MessageKeyboardFocusConfigSchema} from '@fluxer/schema/src/domains/experiment/MessageKeyboardFocusSchemas'; import type {InstanceBranding} from '@fluxer/schema/src/domains/instance/InstanceSchemas'; @@ -60,6 +61,7 @@ async function buildInstanceConfigResponse(): Promise { ssoConfig, gatewayRollout, voiceNoiseSuppression, + guildActivityLogPresentation, experimentDelivery, messageHoverTracking, messageKeyboardFocus, @@ -71,6 +73,7 @@ async function buildInstanceConfigResponse(): Promise { instanceConfigRepository.getSsoConfig(), instanceConfigRepository.getGatewayRolloutConfig(), instanceConfigRepository.getVoiceNoiseSuppressionConfig(), + instanceConfigRepository.getGuildActivityLogPresentationConfig(), instanceConfigRepository.getExperimentDeliveryConfig(), instanceConfigRepository.getMessageHoverTrackingConfig(), instanceConfigRepository.getMessageKeyboardFocusConfig(), @@ -105,6 +108,7 @@ async function buildInstanceConfigResponse(): Promise { }, gateway_rollout: gatewayRollout, voice_noise_suppression: voiceNoiseSuppression, + guild_activity_log_presentation: guildActivityLogPresentation, experiment_delivery: experimentDelivery, message_hover_tracking: messageHoverTracking, message_keyboard_focus: messageKeyboardFocus, @@ -252,6 +256,19 @@ export function InstanceConfigAdminController(app: HonoApp) { await instanceConfigRepository.setVoiceNoiseSuppressionConfig(validated); } } + if (data.guild_activity_log_presentation) { + const patch = omitUndefinedFields(data.guild_activity_log_presentation); + if (Object.keys(patch).length > 0) { + const currentGuildActivityLogPresentation = + await instanceConfigRepository.getGuildActivityLogPresentationConfig(); + const validated = GuildActivityLogPresentationConfigSchema.parse({ + ...currentGuildActivityLogPresentation, + ...patch, + config_version: currentGuildActivityLogPresentation.config_version + 1, + }); + await instanceConfigRepository.setGuildActivityLogPresentationConfig(validated); + } + } if (data.message_hover_tracking) { const patch = omitUndefinedFields(data.message_hover_tracking); if (Object.keys(patch).length > 0) { diff --git a/fluxer_api/src/api/channel/controllers/ChannelController.ts b/fluxer_api/src/api/channel/controllers/ChannelController.ts index 246bba9c6..ba602bbfc 100644 --- a/fluxer_api/src/api/channel/controllers/ChannelController.ts +++ b/fluxer_api/src/api/channel/controllers/ChannelController.ts @@ -156,6 +156,7 @@ export function ChannelController(app: HonoApp) { const data = ctx.req.valid('json'); const clientFeatures = parseClientFeaturesHeader(ctx.req.header(CLIENT_FEATURES_HEADER)); const requestCache = ctx.get('requestCache'); + const auditLogReason = ctx.get('auditLogReason') ?? null; const channelRequestService = ctx.get('channelRequestService'); return ctx.json( await channelRequestService.updateChannel({ @@ -164,6 +165,7 @@ export function ChannelController(app: HonoApp) { data, clientFeatures, requestCache, + auditLogReason, }), ); }, @@ -195,6 +197,7 @@ export function ChannelController(app: HonoApp) { const {silent, delete_messages} = ctx.req.valid('query'); const body = ctx.req.valid('json'); const requestCache = ctx.get('requestCache'); + const auditLogReason = ctx.get('auditLogReason') ?? null; const channelRequestService = ctx.get('channelRequestService'); await ctx.get('channelService').channelData.operations.getChannel({userId, channelId}); if (delete_messages) { @@ -203,7 +206,7 @@ export function ChannelController(app: HonoApp) { channelIds: [channelId], }); } - await channelRequestService.deleteChannel({userId, channelId, requestCache, silent}); + await channelRequestService.deleteChannel({userId, channelId, requestCache, silent, auditLogReason}); return ctx.body(null, 204); }, ); @@ -300,6 +303,7 @@ export function ChannelController(app: HonoApp) { const data = ctx.req.valid('json'); const clientFeatures = parseClientFeaturesHeader(ctx.req.header(CLIENT_FEATURES_HEADER)); const requestCache = ctx.get('requestCache'); + const auditLogReason = ctx.get('auditLogReason') ?? null; await ctx.get('channelService').channelData.operations.setChannelPermissionOverwrite({ userId, channelId, @@ -311,6 +315,7 @@ export function ChannelController(app: HonoApp) { }, clientFeatures, requestCache, + auditLogReason, }); return ctx.body(null, 204); }, @@ -335,9 +340,14 @@ export function ChannelController(app: HonoApp) { const channelId = createChannelID(ctx.req.valid('param').channel_id); const overwriteId = ctx.req.valid('param').overwrite_id; const requestCache = ctx.get('requestCache'); - await ctx - .get('channelService') - .channelData.operations.deleteChannelPermissionOverwrite({userId, channelId, overwriteId, requestCache}); + const auditLogReason = ctx.get('auditLogReason') ?? null; + await ctx.get('channelService').channelData.operations.deleteChannelPermissionOverwrite({ + userId, + channelId, + overwriteId, + requestCache, + auditLogReason, + }); return ctx.body(null, 204); }, ); diff --git a/fluxer_api/src/api/channel/controllers/MessageController.ts b/fluxer_api/src/api/channel/controllers/MessageController.ts index 187a63b17..3f80e868a 100644 --- a/fluxer_api/src/api/channel/controllers/MessageController.ts +++ b/fluxer_api/src/api/channel/controllers/MessageController.ts @@ -364,7 +364,10 @@ export function MessageController(app: HonoApp) { const channelId = createChannelID(channel_id); const messageId = createMessageID(message_id); const requestCache = ctx.get('requestCache'); - await ctx.get('channelService').messages.deletion.deleteMessage({userId, channelId, messageId, requestCache}); + const auditLogReason = ctx.get('auditLogReason') ?? null; + await ctx + .get('channelService') + .messages.deletion.deleteMessage({userId, channelId, messageId, requestCache, auditLogReason}); return ctx.body(null, 204); }, ); @@ -420,7 +423,10 @@ export function MessageController(app: HonoApp) { const userId = ctx.get('user').id; const channelId = createChannelID(ctx.req.valid('param').channel_id); const messageIds = ctx.req.valid('json').message_ids.map(createMessageID); - await ctx.get('channelService').messages.deletion.bulkDeleteMessages({userId, channelId, messageIds}); + const auditLogReason = ctx.get('auditLogReason') ?? null; + await ctx + .get('channelService') + .messages.deletion.bulkDeleteMessages({userId, channelId, messageIds, auditLogReason}); return ctx.body(null, 204); }, ); diff --git a/fluxer_api/src/api/channel/controllers/MessageInteractionController.ts b/fluxer_api/src/api/channel/controllers/MessageInteractionController.ts index 0150f7778..fa8923155 100644 --- a/fluxer_api/src/api/channel/controllers/MessageInteractionController.ts +++ b/fluxer_api/src/api/channel/controllers/MessageInteractionController.ts @@ -106,11 +106,13 @@ export function MessageInteractionController(app: HonoApp) { const channelId = createChannelID(channel_id); const messageId = createMessageID(message_id); const requestCache = ctx.get('requestCache'); + const auditLogReason = ctx.get('auditLogReason') ?? null; await ctx.get('channelService').interactions.pinMessage({ userId, channelId, messageId, requestCache, + auditLogReason, }); return ctx.body(null, 204); }, @@ -136,11 +138,13 @@ export function MessageInteractionController(app: HonoApp) { const channelId = createChannelID(channel_id); const messageId = createMessageID(message_id); const requestCache = ctx.get('requestCache'); + const auditLogReason = ctx.get('auditLogReason') ?? null; await ctx.get('channelService').interactions.unpinMessage({ userId, channelId, messageId, requestCache, + auditLogReason, }); return ctx.body(null, 204); }, diff --git a/fluxer_api/src/api/channel/services/ChannelDataService.ts b/fluxer_api/src/api/channel/services/ChannelDataService.ts index 7816c7e1a..c71d8bda1 100644 --- a/fluxer_api/src/api/channel/services/ChannelDataService.ts +++ b/fluxer_api/src/api/channel/services/ChannelDataService.ts @@ -104,12 +104,14 @@ export class ChannelDataService { data, clientFeatures, requestCache, + auditLogReason, }: { userId: UserID; channelId: ChannelID; data: Omit; clientFeatures: ReadonlySet; requestCache: RequestCache; + auditLogReason: string | null; }): Promise { const {channel} = await this.auth.getChannelAuthenticated({userId, channelId, skipNsfwValidation: true}); if (channel.type === ChannelTypes.GROUP_DM) { @@ -182,6 +184,7 @@ export class ChannelDataService { data: channelUpdateData, clientFeatures, requestCache, + auditLogReason, }); } } diff --git a/fluxer_api/src/api/channel/services/ChannelRequestService.ts b/fluxer_api/src/api/channel/services/ChannelRequestService.ts index 45c908163..488adf0b5 100644 --- a/fluxer_api/src/api/channel/services/ChannelRequestService.ts +++ b/fluxer_api/src/api/channel/services/ChannelRequestService.ts @@ -61,6 +61,7 @@ export class ChannelRequestService { data: ChannelUpdateRequest; clientFeatures: ReadonlySet; requestCache: RequestCache; + auditLogReason: string | null; }): Promise { const channel = await this.channelService.channelData.editChannel({ userId: params.userId, @@ -68,6 +69,7 @@ export class ChannelRequestService { data: params.data, clientFeatures: params.clientFeatures, requestCache: params.requestCache, + auditLogReason: params.auditLogReason, }); return mapChannelToResponse({ channel, @@ -82,6 +84,7 @@ export class ChannelRequestService { channelId: ChannelID; requestCache: RequestCache; silent?: boolean; + auditLogReason: string | null; }): Promise { const channel = await this.channelService.channelData.operations.getChannel({ userId: params.userId, @@ -101,6 +104,7 @@ export class ChannelRequestService { userId: params.userId, channelId: params.channelId, requestCache: params.requestCache, + auditLogReason: params.auditLogReason, }); } } diff --git a/fluxer_api/src/api/channel/services/MessageInteractionService.ts b/fluxer_api/src/api/channel/services/MessageInteractionService.ts index f362b0c3f..8378d63d5 100644 --- a/fluxer_api/src/api/channel/services/MessageInteractionService.ts +++ b/fluxer_api/src/api/channel/services/MessageInteractionService.ts @@ -97,17 +97,19 @@ export class MessageInteractionService { channelId, messageId, requestCache, + auditLogReason, }: { userId: UserID; channelId: ChannelID; messageId: MessageID; requestCache: RequestCache; + auditLogReason?: string | null; }): Promise { const authChannel = await this.authService.getChannelAuthenticated({userId, channelId}); if (!authChannel.guild && authChannel.channel.type !== ChannelTypes.DM_PERSONAL_NOTES) { await this.authService.validateDMSendPermissions({channel: authChannel.channel, userId}); } - await this.pinService.pinMessage({authChannel, messageId, userId, requestCache}); + await this.pinService.pinMessage({authChannel, messageId, userId, requestCache, auditLogReason}); } async unpinMessage({ @@ -115,17 +117,19 @@ export class MessageInteractionService { channelId, messageId, requestCache, + auditLogReason, }: { userId: UserID; channelId: ChannelID; messageId: MessageID; requestCache: RequestCache; + auditLogReason?: string | null; }): Promise { const authChannel = await this.authService.getChannelAuthenticated({userId, channelId}); if (!authChannel.guild && authChannel.channel.type !== ChannelTypes.DM_PERSONAL_NOTES) { await this.authService.validateDMSendPermissions({channel: authChannel.channel, userId}); } - await this.pinService.unpinMessage({authChannel, messageId, userId, requestCache}); + await this.pinService.unpinMessage({authChannel, messageId, userId, requestCache, auditLogReason}); } async getUsersForReaction({ diff --git a/fluxer_api/src/api/channel/services/channel_data/ChannelOperationsService.ts b/fluxer_api/src/api/channel/services/channel_data/ChannelOperationsService.ts index 1a1313b26..c4e4cbfee 100644 --- a/fluxer_api/src/api/channel/services/channel_data/ChannelOperationsService.ts +++ b/fluxer_api/src/api/channel/services/channel_data/ChannelOperationsService.ts @@ -129,12 +129,14 @@ export class ChannelOperationsService { data, clientFeatures, requestCache, + auditLogReason, }: { userId: UserID; channelId: ChannelID; data: ChannelUpdateData; clientFeatures: ReadonlySet; requestCache: RequestCache; + auditLogReason: string | null; }): Promise { const {channel, guild, checkPermission} = await this.channelAuthService.getChannelAuthenticated({ userId, @@ -339,7 +341,7 @@ export class ChannelOperationsService { const builder = this.guildAuditLogService .createBuilder(guildIdValue, userId) .withAction(AuditLogActionType.CHANNEL_UPDATE, channel.id.toString()) - .withReason(null) + .withReason(auditLogReason) .withMetadata({ type: updatedChannel.type.toString(), }) @@ -358,8 +360,6 @@ export class ChannelOperationsService { 'Failed to record guild audit log', ); } - if (data.name !== undefined && channel.name !== updatedChannel.name) { - } } if (data.permission_overwrites !== undefined) { await this.guildAuditLogService.recordPermissionOverwriteDiff({ @@ -368,6 +368,7 @@ export class ChannelOperationsService { channelId: updatedChannel.id, previous: previousPermissionOverwrites, next: updatedChannel.permissionOverwrites, + reason: auditLogReason, }); } return updatedChannel; @@ -377,10 +378,12 @@ export class ChannelOperationsService { userId, channelId, requestCache, + auditLogReason, }: { userId: UserID; channelId: ChannelID; requestCache: RequestCache; + auditLogReason: string | null; }): Promise { const {channel, guild, checkPermission} = await this.channelAuthService.getChannelAuthenticated({ userId, @@ -421,7 +424,7 @@ export class ChannelOperationsService { const builder = this.guildAuditLogService .createBuilder(guildIdValue, userId) .withAction(AuditLogActionType.CHANNEL_DELETE, channel.id.toString()) - .withReason(null) + .withReason(auditLogReason) .withMetadata({ type: channel.type.toString(), }) @@ -611,6 +614,7 @@ export class ChannelOperationsService { }; clientFeatures: ReadonlySet; requestCache: RequestCache; + auditLogReason: string | null; }): Promise { const channel = await this.channelRepository.channelData.findUnique(params.channelId); if (!channel || !channel.guildId) throw new UnknownChannelError(); @@ -646,15 +650,13 @@ export class ChannelOperationsService { const removedDeny = (existing?.deny ?? 0n) & ~sanitizedDeny; if (!hasAdministrator && (removedDeny & ~userPermissions) !== 0n) throw new MissingPermissionsError(); const previousPermissionOverwrites = channel.permissionOverwrites; + const nextOverwrite = new ChannelPermissionOverwrite({ + type: params.overwrite.type, + allow_: sanitizedAllow, + deny_: sanitizedDeny, + }); const overwrites = new Map(channel.permissionOverwrites ?? []); - overwrites.set( - targetId, - new ChannelPermissionOverwrite({ - type: params.overwrite.type, - allow_: sanitizedAllow, - deny_: sanitizedDeny, - }), - ); + overwrites.set(targetId, nextOverwrite); const updated = await this.channelRepository.channelData.upsert({ ...channel.toRow(), permission_overwrites: new Map( @@ -670,50 +672,14 @@ export class ChannelOperationsService { requestCache: params.requestCache, }); } - const previousSnapshot = existing - ? { - id: params.overwriteId.toString(), - type: existing.type.toString(), - allow: existing.allow.toString(), - deny: existing.deny.toString(), - } - : null; - const nextSnapshot = { - id: params.overwriteId.toString(), - type: params.overwrite.type.toString(), - allow: sanitizedAllow.toString(), - deny: sanitizedDeny.toString(), - }; - const changes = this.guildAuditLogService.computeChanges(previousSnapshot, nextSnapshot); - if (changes.length > 0) { - const action = existing - ? AuditLogActionType.CHANNEL_OVERWRITE_UPDATE - : AuditLogActionType.CHANNEL_OVERWRITE_CREATE; - const builder = this.guildAuditLogService - .createBuilder(channel.guildId, params.userId) - .withAction(action, params.overwriteId.toString()) - .withReason(null) - .withMetadata({ - id: params.overwriteId.toString(), - type: params.overwrite.type.toString(), - channel_id: channel.id.toString(), - }) - .withChanges(changes); - try { - await builder.commit(); - } catch (error) { - Logger.error( - { - error, - guildId: channel.guildId.toString(), - userId: params.userId.toString(), - action, - targetId: params.overwriteId.toString(), - }, - 'Failed to record guild audit log', - ); - } - } + await this.guildAuditLogService.recordPermissionOverwriteDiff({ + guildId: channel.guildId, + userId: params.userId, + channelId: channel.id, + previous: existing ? new Map([[targetId, existing]]) : null, + next: new Map([[targetId, nextOverwrite]]), + reason: params.auditLogReason, + }); } async deleteChannelPermissionOverwrite(params: { @@ -721,6 +687,7 @@ export class ChannelOperationsService { channelId: ChannelID; overwriteId: bigint; requestCache: RequestCache; + auditLogReason: string | null; }): Promise { const channel = await this.channelRepository.channelData.findUnique(params.channelId); if (!channel || !channel.guildId) throw new UnknownChannelError(); @@ -763,37 +730,15 @@ export class ChannelOperationsService { }); } if (removed) { - const previousSnapshot = { - id: params.overwriteId.toString(), - type: removed.type.toString(), - allow: removed.allow.toString(), - deny: removed.deny.toString(), - }; - const changes = this.guildAuditLogService.computeChanges(previousSnapshot, null); - const builder = this.guildAuditLogService - .createBuilder(channel.guildId, params.userId) - .withAction(AuditLogActionType.CHANNEL_OVERWRITE_DELETE, params.overwriteId.toString()) - .withReason(null) - .withMetadata({ - id: params.overwriteId.toString(), - type: removed.type.toString(), - channel_id: channel.id.toString(), - }) - .withChanges(changes); - try { - await builder.commit(); - } catch (error) { - Logger.error( - { - error, - guildId: channel.guildId.toString(), - userId: params.userId.toString(), - action: AuditLogActionType.CHANNEL_OVERWRITE_DELETE, - targetId: params.overwriteId.toString(), - }, - 'Failed to record guild audit log', - ); - } + const removedTargetId = removed.type === 0 ? createRoleID(params.overwriteId) : createUserID(params.overwriteId); + await this.guildAuditLogService.recordPermissionOverwriteDiff({ + guildId: channel.guildId, + userId: params.userId, + channelId: channel.id, + previous: new Map([[removedTargetId, removed]]), + next: null, + reason: params.auditLogReason, + }); } } } diff --git a/fluxer_api/src/api/channel/services/interaction/MessagePinService.ts b/fluxer_api/src/api/channel/services/interaction/MessagePinService.ts index 4cd7a96d0..3025dcda9 100644 --- a/fluxer_api/src/api/channel/services/interaction/MessagePinService.ts +++ b/fluxer_api/src/api/channel/services/interaction/MessagePinService.ts @@ -142,11 +142,13 @@ export class MessagePinService extends MessageInteractionBase { authChannel, messageId, userId, + auditLogReason, }: { authChannel: AuthenticatedChannel; messageId: MessageID; userId: UserID; requestCache: RequestCache; + auditLogReason?: string | null; }): Promise { const {channel, guild, checkPermission} = authChannel; if (guild) { @@ -182,7 +184,7 @@ export class MessagePinService extends MessageInteractionBase { channel_id: channel.id.toString(), message_id: messageId.toString(), }) - .withReason(null) + .withReason(auditLogReason ?? null) .commit(); } } @@ -191,11 +193,13 @@ export class MessagePinService extends MessageInteractionBase { authChannel, messageId, userId, + auditLogReason, }: { authChannel: AuthenticatedChannel; messageId: MessageID; userId: UserID; requestCache: RequestCache; + auditLogReason?: string | null; }): Promise { const {channel, guild, checkPermission} = authChannel; if (guild) { @@ -227,7 +231,7 @@ export class MessagePinService extends MessageInteractionBase { channel_id: channel.id.toString(), message_id: messageId.toString(), }) - .withReason(null) + .withReason(auditLogReason ?? null) .commit(); } } diff --git a/fluxer_api/src/api/channel/services/message/MessageDeleteService.ts b/fluxer_api/src/api/channel/services/message/MessageDeleteService.ts index 9b0898e2d..9c26c684a 100644 --- a/fluxer_api/src/api/channel/services/message/MessageDeleteService.ts +++ b/fluxer_api/src/api/channel/services/message/MessageDeleteService.ts @@ -53,12 +53,14 @@ export class MessageDeleteService { channelId, messageId, skipGuildAuditLog, + auditLogReason, }: { userId: UserID; channelId: ChannelID; messageId: MessageID; requestCache: RequestCache; skipGuildAuditLog?: boolean; + auditLogReason?: string | null; }): Promise { const {channel, guild, hasPermission} = await this.deps.channelAuthService.getChannelAuthenticated({ userId, @@ -97,7 +99,7 @@ export class MessageDeleteService { .createBuilder(channel.guildId, userId) .withAction(AuditLogActionType.MESSAGE_DELETE, message.id.toString()) .withMetadata({channel_id: channel.id.toString()}) - .withReason(null) + .withReason(auditLogReason ?? null) .commit(); } await this.deps.searchService.deleteMessageIndex(messageId); @@ -149,10 +151,12 @@ export class MessageDeleteService { userId, channelId, messageIds, + auditLogReason, }: { userId: UserID; channelId: ChannelID; messageIds: Array; + auditLogReason?: string | null; }): Promise { if (messageIds.length === 0) { throw InputValidationError.fromCode('message_ids', ValidationErrorCodes.MESSAGE_IDS_CANNOT_BE_EMPTY); @@ -186,7 +190,7 @@ export class MessageDeleteService { channel_id: channel.id.toString(), count: existingMessages.length.toString(), }) - .withReason(null) + .withReason(auditLogReason ?? null) .commit(); } await this.deps.searchService.deleteMessagesIndex(messageIds); diff --git a/fluxer_api/src/api/experiment/ExperimentController.ts b/fluxer_api/src/api/experiment/ExperimentController.ts index 3552a5ff8..81e1847b4 100644 --- a/fluxer_api/src/api/experiment/ExperimentController.ts +++ b/fluxer_api/src/api/experiment/ExperimentController.ts @@ -11,6 +11,7 @@ import {Headers as HttpHeaders} from '@fluxer/constants/src/Headers'; import {resolveVoiceNoiseSuppressionAssignment} from '@fluxer/schema/src/domains/admin/VoiceNoiseSuppressionSchemas'; import {resolveBlockedMessageGroupsAssignment} from '@fluxer/schema/src/domains/experiment/BlockedMessageGroupsSchemas'; import {ExperimentAssignmentsResponse} from '@fluxer/schema/src/domains/experiment/ExperimentSchemas'; +import {resolveGuildActivityLogPresentationAssignment} from '@fluxer/schema/src/domains/experiment/GuildActivityLogPresentationSchemas'; import {resolveMessageHoverTrackingAssignment} from '@fluxer/schema/src/domains/experiment/MessageHoverTrackingSchemas'; import {resolveMessageKeyboardFocusAssignment} from '@fluxer/schema/src/domains/experiment/MessageKeyboardFocusSchemas'; @@ -37,12 +38,14 @@ export function ExperimentController(app: HonoApp) { messageHoverTrackingConfig, messageKeyboardFocusConfig, blockedMessageGroupsConfig, + guildActivityLogPresentationConfig, ] = await Promise.all([ instanceConfigRepository.getExperimentDeliveryConfig(), instanceConfigRepository.getVoiceNoiseSuppressionConfig(), instanceConfigRepository.getMessageHoverTrackingConfig(), instanceConfigRepository.getMessageKeyboardFocusConfig(), instanceConfigRepository.getBlockedMessageGroupsConfig(), + instanceConfigRepository.getGuildActivityLogPresentationConfig(), ]); const userId = ctx.get('user').id.toString(); const body: ExperimentAssignmentsResponse = { @@ -53,6 +56,10 @@ export function ExperimentController(app: HonoApp) { message_hover_tracking: resolveMessageHoverTrackingAssignment(messageHoverTrackingConfig, userId), message_keyboard_focus: resolveMessageKeyboardFocusAssignment(messageKeyboardFocusConfig, userId), blocked_message_groups: resolveBlockedMessageGroupsAssignment(blockedMessageGroupsConfig, userId), + guild_activity_log_presentation: resolveGuildActivityLogPresentationAssignment( + guildActivityLogPresentationConfig, + userId, + ), }, }; const etag = `"${createHash('sha256').update(JSON.stringify(body)).digest('hex')}"`; diff --git a/fluxer_api/src/api/experiment/tests/ExperimentController.test.ts b/fluxer_api/src/api/experiment/tests/ExperimentController.test.ts index 5d8e236b2..a4d5897cf 100644 --- a/fluxer_api/src/api/experiment/tests/ExperimentController.test.ts +++ b/fluxer_api/src/api/experiment/tests/ExperimentController.test.ts @@ -20,10 +20,15 @@ import { type ExperimentAssignmentsResponse, type ExperimentDeliveryConfigResponse, readBlockedMessageGroupsAssignment, + readGuildActivityLogPresentationAssignment, readMessageHoverTrackingAssignment, readMessageKeyboardFocusAssignment, readVoiceNoiseSuppressionAssignment, } from '@fluxer/schema/src/domains/experiment/ExperimentSchemas'; +import { + DEFAULT_GUILD_ACTIVITY_LOG_PRESENTATION_CONFIG, + INERT_GUILD_ACTIVITY_LOG_PRESENTATION_ASSIGNMENT, +} from '@fluxer/schema/src/domains/experiment/GuildActivityLogPresentationSchemas'; import { DEFAULT_MESSAGE_HOVER_TRACKING_CONFIG, INERT_MESSAGE_HOVER_TRACKING_ASSIGNMENT, @@ -69,6 +74,7 @@ describe('GET /experiments', () => { message_hover_tracking: INERT_MESSAGE_HOVER_TRACKING_ASSIGNMENT, message_keyboard_focus: INERT_MESSAGE_KEYBOARD_FOCUS_ASSIGNMENT, blocked_message_groups: INERT_BLOCKED_MESSAGE_GROUPS_ASSIGNMENT, + guild_activity_log_presentation: INERT_GUILD_ACTIVITY_LOG_PRESENTATION_ASSIGNMENT, }, }); }); @@ -238,7 +244,75 @@ describe('GET /experiments', () => { }); }); - it('resolves all four experiments independently', async () => { + it('populates the guild activity log presentation key even when the rollout is disabled', async () => { + const account = await createTestAccount(harness); + + const body = await createBuilder(harness, account.token).get(ENDPOINT).execute(); + + expect(Object.hasOwn(body.assignments, 'guild_activity_log_presentation')).toBe(true); + expect(readGuildActivityLogPresentationAssignment(body)).toEqual(INERT_GUILD_ACTIVITY_LOG_PRESENTATION_ASSIGNMENT); + }); + + it('targets an allowlisted account for guild activity log presentation', async () => { + const targeted = await createTestAccount(harness); + const untargeted = await createTestAccount(harness); + await getInstanceConfigRepository().setGuildActivityLogPresentationConfig({ + ...DEFAULT_GUILD_ACTIVITY_LOG_PRESENTATION_CONFIG, + enabled: true, + config_version: 6, + included_user_ids: [targeted.userId], + }); + + const targetedBody = await createBuilder(harness, targeted.token) + .get(ENDPOINT) + .execute(); + expect(readGuildActivityLogPresentationAssignment(targetedBody)).toEqual({ + enabled: true, + config_version: 6, + user_targeted: true, + source: 'user_rule', + }); + + const untargetedBody = await createBuilder(harness, untargeted.token) + .get(ENDPOINT) + .execute(); + expect(readGuildActivityLogPresentationAssignment(untargetedBody)).toEqual({ + enabled: true, + config_version: 6, + user_targeted: false, + source: null, + }); + }); + + it('bumps the guild activity log presentation config version on every admin update', async () => { + const admin = await setUserACLs(harness, await createTestAccount(harness), [ + AdminACLs.AUTHENTICATE, + AdminACLs.INSTANCE_CONFIG_VIEW, + AdminACLs.INSTANCE_CONFIG_UPDATE, + ]); + + const updated = await createBuilder<{ + guild_activity_log_presentation: {config_version: number; enabled: boolean; rollout_basis_points: number}; + }>(harness, admin.token) + .patch('/admin/instance/config') + .body({guild_activity_log_presentation: {enabled: true, rollout_basis_points: 10000}}) + .execute(); + expect(updated.guild_activity_log_presentation).toMatchObject({ + config_version: 1, + enabled: true, + rollout_basis_points: 10000, + }); + + const body = await createBuilder(harness, admin.token).get(ENDPOINT).execute(); + expect(readGuildActivityLogPresentationAssignment(body)).toEqual({ + enabled: true, + config_version: 1, + user_targeted: true, + source: 'canary', + }); + }); + + it('resolves all five experiments independently', async () => { const account = await createTestAccount(harness); await getInstanceConfigRepository().setMessageHoverTrackingConfig({ ...DEFAULT_MESSAGE_HOVER_TRACKING_CONFIG, @@ -255,12 +329,18 @@ describe('GET /experiments', () => { enabled: true, rollout_basis_points: 10000, }); + await getInstanceConfigRepository().setGuildActivityLogPresentationConfig({ + ...DEFAULT_GUILD_ACTIVITY_LOG_PRESENTATION_CONFIG, + enabled: true, + rollout_basis_points: 10000, + }); const body = await createBuilder(harness, account.token).get(ENDPOINT).execute(); expect(readMessageHoverTrackingAssignment(body).user_targeted).toBe(true); expect(readMessageKeyboardFocusAssignment(body).user_targeted).toBe(true); expect(readBlockedMessageGroupsAssignment(body).user_targeted).toBe(true); + expect(readGuildActivityLogPresentationAssignment(body).user_targeted).toBe(true); expect(readVoiceNoiseSuppressionAssignment(body).enabled).toBe(false); }); diff --git a/fluxer_api/src/api/guild/GuildAuditLogEntryMapper.ts b/fluxer_api/src/api/guild/GuildAuditLogEntryMapper.ts new file mode 100644 index 000000000..7b7df043b --- /dev/null +++ b/fluxer_api/src/api/guild/GuildAuditLogEntryMapper.ts @@ -0,0 +1,247 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {createUserID, type UserID} from '@app/api/BrandedTypes'; +import type {AuditLogChange, GuildAuditLogChange} from '@app/api/guild/GuildAuditLogTypes'; +import type {GuildAuditLog} from '@app/api/models/GuildAuditLog'; +import {AuditLogActionType} from '@fluxer/constants/src/AuditLogActionType'; +import type {AuditLogOptions, GuildAuditLogEntryResponse} from '@fluxer/schema/src/domains/guild/GuildAuditLogSchemas'; +import {isValidSnowflake} from '@fluxer/snowflake/src/Snowflake'; + +export interface StoredGuildAuditLogEntryResponse extends Omit { + changes?: GuildAuditLogChange; +} + +type NumericAuditLogOptionKey = + | 'count' + | 'delete_message_seconds' + | 'integration_type' + | 'members_removed' + | 'type' + | 'max_age' + | 'max_uses' + | 'uses'; + +export const GUILD_AUDIT_INTERNAL_CHANGE_KEYS: ReadonlySet = new Set([ + 'guild_id', + 'member_count', + 'banner_width', + 'banner_height', + 'splash_width', + 'splash_height', + 'embed_splash_width', + 'embed_splash_height', +]); + +const NOOP_SKIPPABLE_ACTIONS: ReadonlySet = new Set([ + AuditLogActionType.GUILD_UPDATE, + AuditLogActionType.CHANNEL_UPDATE, + AuditLogActionType.CHANNEL_OVERWRITE_UPDATE, + AuditLogActionType.MEMBER_UPDATE, + AuditLogActionType.MEMBER_ROLE_UPDATE, + AuditLogActionType.MEMBER_MOVE, + AuditLogActionType.ROLE_UPDATE, + AuditLogActionType.WEBHOOK_UPDATE, + AuditLogActionType.EMOJI_UPDATE, + AuditLogActionType.STICKER_UPDATE, +]); + +const USER_TARGET_ACTIONS: ReadonlySet = new Set([ + AuditLogActionType.MEMBER_KICK, + AuditLogActionType.MEMBER_PRUNE, + AuditLogActionType.MEMBER_BAN_ADD, + AuditLogActionType.MEMBER_BAN_REMOVE, + AuditLogActionType.MEMBER_UPDATE, + AuditLogActionType.MEMBER_ROLE_UPDATE, + AuditLogActionType.MEMBER_MOVE, + AuditLogActionType.MEMBER_DISCONNECT, + AuditLogActionType.BOT_ADD, +]); + +const CREATOR_CHANGE_ACTIONS: ReadonlySet = new Set([ + AuditLogActionType.WEBHOOK_DELETE, + AuditLogActionType.EMOJI_DELETE, + AuditLogActionType.STICKER_DELETE, +]); + +const OVERWRITE_ACTIONS: ReadonlySet = new Set([ + AuditLogActionType.CHANNEL_OVERWRITE_CREATE, + AuditLogActionType.CHANNEL_OVERWRITE_UPDATE, + AuditLogActionType.CHANNEL_OVERWRITE_DELETE, +]); + +const SNOWFLAKE_PATTERN = /^\d{1,20}$/; + +export function isNoopGuildAuditLog( + actionType: AuditLogActionType, + changes: GuildAuditLogChange | null | undefined, +): boolean { + if (!NOOP_SKIPPABLE_ACTIONS.has(actionType)) { + return false; + } + if (!changes) { + return true; + } + return !changes.some( + (change) => + change.key !== 'ip' && + !(actionType === AuditLogActionType.GUILD_UPDATE && GUILD_AUDIT_INTERNAL_CHANGE_KEYS.has(change.key)), + ); +} + +export function mapGuildAuditLogEntry(log: GuildAuditLog): StoredGuildAuditLogEntryResponse { + return { + id: log.logId.toString(), + action_type: log.actionType, + user_id: log.userId.toString(), + target_id: log.targetId, + reason: resolveEntryReason(log), + options: buildAuditLogOptions(log.options), + changes: scrubSensitiveChanges(log.changes), + }; +} + +export function collectGuildAuditLogUserIds(log: GuildAuditLog): Array { + const userIds = new Set([log.userId]); + const addUserId = (value: unknown) => { + const userId = parseUserId(value); + if (userId !== null) { + userIds.add(userId); + } + }; + if (USER_TARGET_ACTIONS.has(log.actionType)) { + addUserId(log.targetId); + } + if (log.actionType === AuditLogActionType.GUILD_UPDATE) { + addUserId(findChange(log.changes, 'owner_id')?.new_value); + } + if (log.actionType === AuditLogActionType.MEMBER_BAN_REMOVE) { + addUserId(findChange(log.changes, 'moderator_id')?.old_value); + } + if (log.actionType === AuditLogActionType.INVITE_DELETE) { + addUserId(log.options.get('inviter_id')); + } + if (CREATOR_CHANGE_ACTIONS.has(log.actionType)) { + addUserId(findChange(log.changes, 'creator_id')?.old_value); + } + if (OVERWRITE_ACTIONS.has(log.actionType) && log.options.get('type') === '1') { + addUserId(log.targetId); + } + return Array.from(userIds); +} + +function resolveEntryReason(log: GuildAuditLog): string | undefined { + const explicitReason = readNonBlankString(log.reason); + if (explicitReason !== null) { + return explicitReason; + } + if (log.actionType === AuditLogActionType.MEMBER_BAN_ADD) { + return readNonBlankString(findChange(log.changes, 'reason')?.new_value) ?? undefined; + } + if (log.actionType === AuditLogActionType.MEMBER_UPDATE) { + return readNonBlankString(log.options.get('timeout_reason')) ?? undefined; + } + return undefined; +} + +function readNonBlankString(value: unknown): string | null { + if (typeof value !== 'string') { + return null; + } + const trimmed = value.trim(); + return trimmed.length > 0 ? trimmed : null; +} + +function findChange(changes: GuildAuditLogChange | null, key: string): AuditLogChange | undefined { + return changes?.find((change) => change.key === key); +} + +function scrubSensitiveChanges(changes: GuildAuditLogChange | null | undefined): GuildAuditLogChange | undefined { + if (!changes) { + return undefined; + } + const scrubbed = changes.filter((change) => change.key !== 'ip'); + return scrubbed.length > 0 ? scrubbed : undefined; +} + +function buildAuditLogOptions(options: Map): AuditLogOptions | undefined { + if (!options.size) { + return undefined; + } + const mapped: AuditLogOptions = {}; + for (const [key, value] of options) { + switch (key) { + case 'channel_id': + mapped.channel_id = value; + break; + case 'count': + assignNumericOption(mapped, 'count', value); + break; + case 'delete_member_days': + mapped.delete_member_days = value; + break; + case 'delete_message_days': + if (!mapped.delete_member_days) { + mapped.delete_member_days = value; + } + break; + case 'delete_message_seconds': + assignNumericOption(mapped, 'delete_message_seconds', value); + break; + case 'id': + mapped.id = value; + break; + case 'integration_type': + assignNumericOption(mapped, 'integration_type', value); + break; + case 'message_id': + mapped.message_id = value; + break; + case 'members_removed': + assignNumericOption(mapped, 'members_removed', value); + break; + case 'role_name': + mapped.role_name = value; + break; + case 'type': + assignNumericOption(mapped, 'type', value); + break; + case 'inviter_id': + mapped.inviter_id = value; + break; + case 'max_age': + assignNumericOption(mapped, 'max_age', value); + break; + case 'max_uses': + assignNumericOption(mapped, 'max_uses', value); + break; + case 'uses': + assignNumericOption(mapped, 'uses', value); + break; + case 'temporary': + mapped.temporary = parseBooleanOption(value); + break; + default: + break; + } + } + return Object.keys(mapped).length === 0 ? undefined : mapped; +} + +function parseBooleanOption(value: string): boolean { + return value === 'true' || value === '1'; +} + +function assignNumericOption(target: AuditLogOptions, key: NumericAuditLogOptionKey, value: string): void { + const parsed = Number(value); + if (!Number.isNaN(parsed)) { + target[key] = parsed; + } +} + +function parseUserId(value: unknown): UserID | null { + if (typeof value !== 'string' || !SNOWFLAKE_PATTERN.test(value)) { + return null; + } + const id = BigInt(value); + return isValidSnowflake(id) ? createUserID(id) : null; +} diff --git a/fluxer_api/src/api/guild/GuildAuditLogService.ts b/fluxer_api/src/api/guild/GuildAuditLogService.ts index 3b29da2fd..d926b1957 100644 --- a/fluxer_api/src/api/guild/GuildAuditLogService.ts +++ b/fluxer_api/src/api/guild/GuildAuditLogService.ts @@ -1,7 +1,8 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -import type {ChannelID, GuildID, RoleID, UserID} from '@app/api/BrandedTypes'; +import {type ChannelID, createRoleID, type GuildID, type RoleID, type UserID} from '@app/api/BrandedTypes'; import type {GuildAuditLogRow} from '@app/api/database/types/GuildTypes'; +import {isNoopGuildAuditLog, mapGuildAuditLogEntry} from '@app/api/guild/GuildAuditLogEntryMapper'; import type {AuditLogChange, GuildAuditLogChange} from '@app/api/guild/GuildAuditLogTypes'; import type {IGuildRepositoryAggregate} from '@app/api/guild/repositories/IGuildRepositoryAggregate'; import type {IGatewayService} from '@app/api/infrastructure/IGatewayService'; @@ -37,16 +38,6 @@ interface CreateGuildAuditLogParams { createdAt?: Date; } -interface GuildAuditLogDispatchEntry { - id: string; - action_type: number; - user_id: string; - target_id: string | null; - reason?: string; - options?: Record; - changes?: GuildAuditLogChange; -} - function normalizeAuditLogMetadata(metadata?: CreateGuildAuditLogParams['metadata']): Map { if (!metadata) { return new Map(); @@ -251,17 +242,37 @@ export class GuildAuditLogService { : before && !after ? AuditLogActionType.CHANNEL_OVERWRITE_DELETE : AuditLogActionType.CHANNEL_OVERWRITE_UPDATE; - const builder = this.createBuilder(params.guildId, params.userId) - .withAction(action, targetId.toString()) - .withReason(params.reason ?? null) - .withMetadata({ + let roleName: string | null = null; + if (overwriteType === 0 && targetId.toString() !== params.guildId.toString()) { + try { + const role = await this.guildRepository.getRole(createRoleID(BigInt(targetId)), params.guildId); + roleName = role?.name ?? null; + } catch (error) { + Logger.warn( + { + error, + guildId: params.guildId.toString(), + roleId: targetId.toString(), + }, + 'Failed to resolve role name for guild audit log', + ); + } + } + try { + const metadata: Record = { id: targetId.toString(), type: overwriteType.toString(), channel_id: params.channelId.toString(), - }) - .withChanges(changes); - try { - await builder.commit(); + }; + if (roleName !== null) { + metadata['role_name'] = roleName; + } + await this.createBuilder(params.guildId, params.userId) + .withAction(action, targetId.toString()) + .withReason(params.reason ?? null) + .withMetadata(metadata) + .withChanges(changes) + .commit(); } catch (error) { Logger.error( { @@ -356,41 +367,12 @@ export class GuildAuditLogService { return JSON.stringify(a) === JSON.stringify(b); } - private mapDispatchOptions(options: Map): Record | undefined { - if (options.size === 0) { - return undefined; - } - return Object.fromEntries(options); - } - - private scrubSensitiveChanges(changes: GuildAuditLogChange | null): GuildAuditLogChange | undefined { - if (!changes) { - return undefined; - } - const scrubbedChanges = changes.filter((change) => change.key !== 'ip'); - return scrubbedChanges.length > 0 ? scrubbedChanges : undefined; - } - - private buildDispatchEntry(log: GuildAuditLog): GuildAuditLogDispatchEntry { - const options = this.mapDispatchOptions(log.options); - const changes = this.scrubSensitiveChanges(log.changes); - return { - id: log.logId.toString(), - action_type: log.actionType, - user_id: log.userId.toString(), - target_id: log.targetId, - reason: log.reason ?? undefined, - options, - changes, - }; - } - private async dispatchAuditLogEntryCreate(log: GuildAuditLog): Promise { try { await this.gatewayService.dispatchGuild({ guildId: log.guildId, event: 'GUILD_AUDIT_LOG_ENTRY_CREATE', - data: this.buildDispatchEntry(log), + data: {...mapGuildAuditLogEntry(log), guild_id: log.guildId.toString()}, }); } catch (error) { Logger.error( @@ -459,10 +441,13 @@ class GuildAuditLogBuilder { return this; } - async commit(): Promise { + async commit(): Promise { if (this.params.actionType === undefined) { throw new Error('Audit log action type must be set before committing'); } + if (isNoopGuildAuditLog(this.params.actionType, this.params.changes)) { + return null; + } return this.service.createLog({ guildId: this.params.guildId!, userId: this.params.userId!, diff --git a/fluxer_api/src/api/guild/services/GuildMemberService.ts b/fluxer_api/src/api/guild/services/GuildMemberService.ts index afc475e62..9b498d73b 100644 --- a/fluxer_api/src/api/guild/services/GuildMemberService.ts +++ b/fluxer_api/src/api/guild/services/GuildMemberService.ts @@ -137,27 +137,14 @@ export class GuildMemberService { void this.searchIndexService.updateMember(updatedMember, targetUser, searchIndexOptions); } } - const timeoutMetadata = (() => { - if (data.communication_disabled_until === undefined) { - return undefined; - } - const metadata: Record = {}; - if (data.communication_disabled_until !== null) { - metadata['communication_disabled_until'] = data.communication_disabled_until; - } - const trimmedReason = data.timeout_reason?.trim(); - if (trimmedReason) { - metadata['timeout_reason'] = trimmedReason; - } - return Object.keys(metadata).length > 0 ? metadata : undefined; - })(); await this.auditService.recordAuditLog({ guildId, userId, action: AuditLogActionType.MEMBER_UPDATE, targetId: targetId, - auditLogReason: auditLogReason ?? null, - metadata: timeoutMetadata, + auditLogReason: + auditLogReason ?? + (data.communication_disabled_until !== undefined ? data.timeout_reason?.trim() || null : null), changes: this.guildAuditLogService.computeChanges( previousSnapshot, this.auditService.serializeMemberForAudit(updatedMember), @@ -180,6 +167,7 @@ export class GuildMemberService { const targetMember = await this.guildRepository.getMember(guildId, targetId); if (!targetMember) throw new UnknownGuildMemberError(); const previousSnapshot = this.auditService.serializeMemberForAudit(targetMember); + const role = await this.guildRepository.getRole(roleId, guildId); await this.roleService.addMemberRole(params); const updatedMember = await this.guildRepository.getMember(guildId, targetId); if (updatedMember) { @@ -198,7 +186,7 @@ export class GuildMemberService { action: AuditLogActionType.MEMBER_ROLE_UPDATE, targetId: targetId, auditLogReason: auditLogReason ?? null, - metadata: {role_id: roleId.toString(), action: 'add'}, + metadata: role ? {role_name: role.name} : undefined, changes: this.guildAuditLogService.computeChanges( previousSnapshot, this.auditService.serializeMemberForAudit(updatedMember), @@ -218,6 +206,7 @@ export class GuildMemberService { const targetMember = await this.guildRepository.getMember(guildId, targetId); if (!targetMember) throw new UnknownGuildMemberError(); const previousSnapshot = this.auditService.serializeMemberForAudit(targetMember); + const role = await this.guildRepository.getRole(roleId, guildId); await this.roleService.systemAddMemberRole({targetId, guildId, roleId}); const updatedMember = await this.guildRepository.getMember(guildId, targetId); if (updatedMember) { @@ -236,7 +225,7 @@ export class GuildMemberService { action: AuditLogActionType.MEMBER_ROLE_UPDATE, targetId: targetId, auditLogReason: null, - metadata: {role_id: roleId.toString(), action: 'add'}, + metadata: role ? {role_name: role.name} : undefined, changes: this.guildAuditLogService.computeChanges( previousSnapshot, this.auditService.serializeMemberForAudit(updatedMember), @@ -259,6 +248,7 @@ export class GuildMemberService { const targetMember = await this.guildRepository.getMember(guildId, targetId); if (!targetMember) throw new UnknownGuildMemberError(); const previousSnapshot = this.auditService.serializeMemberForAudit(targetMember); + const role = await this.guildRepository.getRole(roleId, guildId); await this.roleService.removeMemberRole(params); const updatedMember = await this.guildRepository.getMember(guildId, targetId); if (updatedMember) { @@ -277,7 +267,7 @@ export class GuildMemberService { action: AuditLogActionType.MEMBER_ROLE_UPDATE, targetId: targetId, auditLogReason: auditLogReason ?? null, - metadata: {role_id: roleId.toString(), action: 'remove'}, + metadata: role ? {role_name: role.name} : undefined, changes: this.guildAuditLogService.computeChanges( previousSnapshot, this.auditService.serializeMemberForAudit(updatedMember), diff --git a/fluxer_api/src/api/guild/services/GuildModerationService.ts b/fluxer_api/src/api/guild/services/GuildModerationService.ts index 5ca522793..678cb054a 100644 --- a/fluxer_api/src/api/guild/services/GuildModerationService.ts +++ b/fluxer_api/src/api/guild/services/GuildModerationService.ts @@ -121,13 +121,15 @@ export class GuildModerationService { }); if (!skipGuildAuditLog) { const metadata: Record | undefined = - deleteMessageDays !== undefined ? {delete_member_days: deleteMessageDays.toString()} : undefined; + effectiveDeleteMessageSeconds && effectiveDeleteMessageSeconds > 0 + ? {delete_message_seconds: String(effectiveDeleteMessageSeconds)} + : undefined; await this.recordAuditLog({ guildId, userId, action: AuditLogActionType.MEMBER_BAN_ADD, targetId: targetId, - auditLogReason: auditLogReason ?? null, + auditLogReason: auditLogReason ?? (reason || null), metadata, changes: this.guildAuditLogService.computeChanges(null, this.serializeBanForAudit(ban)), }); diff --git a/fluxer_api/src/api/guild/services/GuildRoleService.ts b/fluxer_api/src/api/guild/services/GuildRoleService.ts index d9d128ce9..d6d894f8a 100644 --- a/fluxer_api/src/api/guild/services/GuildRoleService.ts +++ b/fluxer_api/src/api/guild/services/GuildRoleService.ts @@ -8,6 +8,7 @@ import {mapGuildRoleToResponse} from '@app/api/guild/GuildModel'; import type {IGuildMemberRepository} from '@app/api/guild/repositories/IGuildMemberRepository'; import type {IGuildRoleRepository} from '@app/api/guild/repositories/IGuildRoleRepository'; import {createGuildMfaEnforcer} from '@app/api/guild/services/GuildMfaEnforcement'; +import {computeMovedIds, getMemberListRoleOrderIds} from '@app/api/guild/services/role/RoleOrderAuditUtils'; import type {IGatewayService} from '@app/api/infrastructure/IGatewayService'; import type {ISnowflakeService} from '@app/api/infrastructure/ISnowflakeService'; import {Logger} from '@app/api/Logger'; @@ -245,6 +246,7 @@ export class GuildRoleService { action: AuditLogActionType.ROLE_UPDATE, targetId: roleId, auditLogReason: auditLogReason ?? null, + metadata: {role_name: updatedRole.name}, changes, }); return mapGuildRoleToResponse(updatedRole); @@ -403,7 +405,15 @@ export class GuildRoleService { } if (changedRoles.length > 0) { await this.dispatchGuildRoleUpdateBulk({guildId, roles: changedRoles}); - await this.recordRolePositionAuditLogs({guildId, userId, roleMap, changedRoles, auditLogReason}); + await this.recordRolePositionAuditLogs({ + guildId, + userId, + roleMap, + changedRoles, + movedRoleIds: this.computeMovedHoistRoleIds({allRoles, changedRoles, everyoneRoleId}), + auditLogReason, + key: 'hoist_position', + }); } } finally { await this.cacheService.releaseLock(lockKey, lockToken); @@ -443,7 +453,19 @@ export class GuildRoleService { } if (changedRoles.length > 0) { await this.dispatchGuildRoleUpdateBulk({guildId, roles: changedRoles}); - await this.recordRolePositionAuditLogs({guildId, userId, roleMap, changedRoles, auditLogReason}); + await this.recordRolePositionAuditLogs({ + guildId, + userId, + roleMap, + changedRoles, + movedRoleIds: this.computeMovedHoistRoleIds({ + allRoles, + changedRoles, + everyoneRoleId: guildIdToRoleId(guildId), + }), + auditLogReason, + key: 'hoist_position', + }); } } finally { await this.cacheService.releaseLock(lockKey, lockToken); @@ -629,10 +651,40 @@ export class GuildRoleService { }); if (changedRoles.length > 0) { await this.dispatchGuildRoleUpdateBulk({guildId, roles: changedRoles}); - await this.recordRolePositionAuditLogs({guildId, userId, roleMap, changedRoles, auditLogReason}); + await this.recordRolePositionAuditLogs({ + guildId, + userId, + roleMap, + changedRoles, + movedRoleIds: computeMovedIds( + currentOrder.map((role) => role.id), + this.getCurrentRoleOrder(updatedRoles, everyoneRoleId).map((role) => role.id), + ), + auditLogReason, + key: 'position', + }); } } + private computeMovedHoistRoleIds(params: { + allRoles: Array; + changedRoles: Array; + everyoneRoleId: RoleID; + }): Set { + const {allRoles, changedRoles, everyoneRoleId} = params; + const changedRoleMap = new Map(changedRoles.map((role) => [role.id, role])); + const updatedRoles = allRoles.map((role) => changedRoleMap.get(role.id) ?? role); + const afterOrderIds = getMemberListRoleOrderIds(updatedRoles, everyoneRoleId); + const movedRoleIds = computeMovedIds(getMemberListRoleOrderIds(allRoles, everyoneRoleId), afterOrderIds); + const memberListRoleIds = new Set(afterOrderIds); + for (const role of changedRoles) { + if (!memberListRoleIds.has(role.id)) { + movedRoleIds.add(role.id); + } + } + return movedRoleIds; + } + private getCurrentRoleOrder(allRoles: Array, everyoneRoleId: RoleID): Array { return allRoles .filter((role) => role.id !== everyoneRoleId) @@ -709,10 +761,15 @@ export class GuildRoleService { userId: UserID; roleMap: Map; changedRoles: Array; + movedRoleIds: ReadonlySet; auditLogReason?: string | null; + key: 'position' | 'hoist_position'; }): Promise { - const {guildId, userId, roleMap, changedRoles, auditLogReason} = params; + const {guildId, userId, roleMap, changedRoles, movedRoleIds, auditLogReason, key} = params; for (const role of changedRoles) { + if (!movedRoleIds.has(role.id)) { + continue; + } const oldRole = roleMap.get(role.id); await this.recordAuditLog({ guildId, @@ -720,10 +777,10 @@ export class GuildRoleService { action: AuditLogActionType.ROLE_UPDATE, targetId: role.id, auditLogReason: auditLogReason ?? null, - changes: this.guildAuditLogService.computeChanges( - oldRole ? this.serializeRoleForAudit(oldRole) : null, - this.serializeRoleForAudit(role), - ), + metadata: {role_name: role.name}, + changes: this.guildAuditLogService + .computeChanges(oldRole ? this.serializeRoleForAudit(oldRole) : null, this.serializeRoleForAudit(role)) + .filter((change) => change.key === key), }); } } diff --git a/fluxer_api/src/api/guild/services/GuildService.ts b/fluxer_api/src/api/guild/services/GuildService.ts index a349abffc..ae6f01ae7 100644 --- a/fluxer_api/src/api/guild/services/GuildService.ts +++ b/fluxer_api/src/api/guild/services/GuildService.ts @@ -2,11 +2,16 @@ import type {ApiContext} from '@app/api/ApiContext'; import type {EmojiID, GuildID, RoleID, StickerID, UserID} from '@app/api/BrandedTypes'; -import {createUserID, createWebhookID} from '@app/api/BrandedTypes'; +import {createWebhookID} from '@app/api/BrandedTypes'; import type {IChannelRepository} from '@app/api/channel/IChannelRepository'; import type {ChannelService} from '@app/api/channel/services/ChannelService'; +import { + collectGuildAuditLogUserIds, + isNoopGuildAuditLog, + mapGuildAuditLogEntry, + type StoredGuildAuditLogEntryResponse, +} from '@app/api/guild/GuildAuditLogEntryMapper'; import type {GuildAuditLogService} from '@app/api/guild/GuildAuditLogService'; -import type {GuildAuditLogChange} from '@app/api/guild/GuildAuditLogTypes'; import type {IGuildRepositoryAggregate} from '@app/api/guild/repositories/IGuildRepositoryAggregate'; import {GuildChannelService} from '@app/api/guild/services/GuildChannelService'; import {GuildContentService} from '@app/api/guild/services/GuildContentService'; @@ -41,9 +46,7 @@ import {UnknownGuildEmojiError} from '@fluxer/errors/src/domains/guild/UnknownGu import {UnknownGuildError} from '@fluxer/errors/src/domains/guild/UnknownGuildError'; import {UnknownGuildStickerError} from '@fluxer/errors/src/domains/guild/UnknownGuildStickerError'; import type { - AuditLogOptions, AuditLogWebhookResponse, - GuildAuditLogEntryResponse, GuildAuditLogListResponse, } from '@fluxer/schema/src/domains/guild/GuildAuditLogSchemas'; import type { @@ -55,10 +58,6 @@ import type {GuildResponse} from '@fluxer/schema/src/domains/guild/GuildResponse import type {ICacheService} from '@pkgs/cache/src/ICacheService'; import type {IpInfoService} from '@pkgs/geoip/src/IpInfoService'; -interface StoredGuildAuditLogEntryResponse extends Omit { - changes?: GuildAuditLogChange; -} - interface StoredAuditLogWebhookResponse extends Omit { type: number; } @@ -338,13 +337,13 @@ export class GuildService { if (shouldBatch) { const batchResult = await this.guildAuditLogService.batchConsecutiveMessageDeleteLogs(guildId, logs); for (const log of batchResult.processedLogs) { - if (processedLogs.length < effectiveLimit) { + if (processedLogs.length < effectiveLimit && !isNoopGuildAuditLog(log.actionType, log.changes)) { processedLogs.push(log); } } } else { for (const log of logs) { - if (processedLogs.length < effectiveLimit) { + if (processedLogs.length < effectiveLimit && !isNoopGuildAuditLog(log.actionType, log.changes)) { processedLogs.push(log); } } @@ -362,10 +361,8 @@ export class GuildService { processedLogs = processedLogs.slice(0, effectiveLimit); const userIdSet = new Set(); for (const log of processedLogs) { - userIdSet.add(log.userId); - const targetUserId = this.getAuditLogTargetUserId(log); - if (targetUserId) { - userIdSet.add(targetUserId); + for (const referencedUserId of collectGuildAuditLogUserIds(log)) { + userIdSet.add(referencedUserId); } } const [userPartials, webhookRecords] = await Promise.all([ @@ -376,7 +373,7 @@ export class GuildService { }), this.loadAuditLogWebhooks(processedLogs), ]); - const entries = processedLogs.map((log) => this.mapAuditLogToEntry(log)); + const entries = processedLogs.map((log) => mapGuildAuditLogEntry(log)); const users = Array.from(userPartials.values()); const webhooks = this.buildAuditLogWebhookResponses(webhookRecords.webhooks); return { @@ -386,102 +383,6 @@ export class GuildService { }; } - private mapAuditLogToEntry(log: GuildAuditLog): StoredGuildAuditLogEntryResponse { - return { - id: log.logId.toString(), - action_type: log.actionType, - user_id: log.userId.toString(), - target_id: log.targetId, - reason: log.reason ?? undefined, - options: this.buildAuditLogOptions(log.options), - changes: this.scrubSensitiveChanges(log.changes), - }; - } - - private scrubSensitiveChanges(changes: GuildAuditLogChange | null | undefined): GuildAuditLogChange | undefined { - if (!changes) { - return undefined; - } - const scrubbed = changes.filter((change) => change.key !== 'ip'); - return scrubbed.length > 0 ? scrubbed : undefined; - } - - private buildAuditLogOptions(options: Map): AuditLogOptions | undefined { - if (!options.size) { - return undefined; - } - const mapped: AuditLogOptions = {}; - for (const [key, value] of options) { - switch (key) { - case 'channel_id': - mapped.channel_id = value; - break; - case 'count': - this.assignNumericOption(mapped, 'count', value); - break; - case 'delete_member_days': - mapped.delete_member_days = value; - break; - case 'delete_message_days': - if (!mapped.delete_member_days) { - mapped.delete_member_days = value; - } - break; - case 'id': - mapped.id = value; - break; - case 'integration_type': - this.assignNumericOption(mapped, 'integration_type', value); - break; - case 'message_id': - mapped.message_id = value; - break; - case 'members_removed': - this.assignNumericOption(mapped, 'members_removed', value); - break; - case 'role_name': - mapped.role_name = value; - break; - case 'type': - this.assignNumericOption(mapped, 'type', value); - break; - case 'inviter_id': - mapped.inviter_id = value; - break; - case 'max_age': - this.assignNumericOption(mapped, 'max_age', value); - break; - case 'max_uses': - this.assignNumericOption(mapped, 'max_uses', value); - break; - case 'uses': - this.assignNumericOption(mapped, 'uses', value); - break; - case 'temporary': - mapped.temporary = this.parseBooleanOption(value); - break; - default: - break; - } - } - return Object.keys(mapped).length === 0 ? undefined : mapped; - } - - private parseBooleanOption(value: string): boolean { - return value === 'true' || value === '1'; - } - - private assignNumericOption( - target: AuditLogOptions, - key: 'count' | 'integration_type' | 'members_removed' | 'type' | 'max_age' | 'max_uses' | 'uses', - value: string, - ): void { - const parsed = Number(value); - if (!Number.isNaN(parsed)) { - target[key] = parsed; - } - } - private async loadAuditLogWebhooks(logs: Array): Promise<{ webhooks: Array; }> { @@ -525,31 +426,6 @@ export class GuildService { ); } - private getAuditLogTargetUserId(log: GuildAuditLog): UserID | null { - if (!log.targetId || !this.isUserTargetAction(log.actionType)) { - return null; - } - try { - return createUserID(BigInt(log.targetId)); - } catch { - return null; - } - } - - private isUserTargetAction(actionType: AuditLogActionType): boolean { - return ( - actionType === AuditLogActionType.MEMBER_KICK || - actionType === AuditLogActionType.MEMBER_PRUNE || - actionType === AuditLogActionType.MEMBER_BAN_ADD || - actionType === AuditLogActionType.MEMBER_BAN_REMOVE || - actionType === AuditLogActionType.MEMBER_UPDATE || - actionType === AuditLogActionType.MEMBER_ROLE_UPDATE || - actionType === AuditLogActionType.MEMBER_MOVE || - actionType === AuditLogActionType.MEMBER_DISCONNECT || - actionType === AuditLogActionType.BOT_ADD - ); - } - async getGuildAuthenticated({userId, guildId}: {userId: UserID; guildId: GuildID}): Promise { const guildData = await this.gatewayService.getGuildData({guildId, userId}); if (!guildData) throw new MissingAccessError(); diff --git a/fluxer_api/src/api/guild/services/data/GuildDataHelpers.ts b/fluxer_api/src/api/guild/services/data/GuildDataHelpers.ts index e48ec9183..f30ed0d5e 100644 --- a/fluxer_api/src/api/guild/services/data/GuildDataHelpers.ts +++ b/fluxer_api/src/api/guild/services/data/GuildDataHelpers.ts @@ -71,13 +71,18 @@ export class GuildDataHelpers { computeGuildChanges( previousSnapshot: Record | null, guildOrSnapshot: Guild | Record | null, + keys?: ReadonlySet, ): GuildAuditLogChange { const currentSnapshot = guildOrSnapshot ? 'id' in guildOrSnapshot ? this.serializeGuildForAudit(guildOrSnapshot as Guild) : guildOrSnapshot : null; - return this.guildAuditLogService.computeChanges(previousSnapshot, currentSnapshot); + const changes = this.guildAuditLogService.computeChanges(previousSnapshot, currentSnapshot); + if (!keys) { + return changes; + } + return changes.filter((change) => keys.has(change.key)); } async dispatchGuildUpdate(guild: Guild): Promise { diff --git a/fluxer_api/src/api/guild/services/data/GuildOperationsService.ts b/fluxer_api/src/api/guild/services/data/GuildOperationsService.ts index c1710d81f..e3cf5ff2c 100644 --- a/fluxer_api/src/api/guild/services/data/GuildOperationsService.ts +++ b/fluxer_api/src/api/guild/services/data/GuildOperationsService.ts @@ -122,6 +122,34 @@ const USER_TOGGLEABLE_GUILD_FEATURES: ReadonlySet = new Set([ GuildFeatures.HIDE_OWNER_CROWN, ]); const SUPPORTED_SYSTEM_CHANNEL_FLAGS = SystemChannelFlags.SUPPRESS_JOIN_NOTIFICATIONS; +const GUILD_SETTINGS_AUDIT_KEYS: ReadonlySet = new Set([ + 'name', + 'icon_hash', + 'banner_hash', + 'banner_width', + 'banner_height', + 'splash_hash', + 'splash_width', + 'splash_height', + 'splash_card_alignment', + 'embed_splash_hash', + 'embed_splash_width', + 'embed_splash_height', + 'features', + 'verification_level', + 'mfa_level', + 'nsfw_level', + 'nsfw', + 'content_warning_level', + 'content_warning_text', + 'explicit_content_filter', + 'default_message_notifications', + 'system_channel_id', + 'system_channel_flags', + 'afk_channel_id', + 'afk_timeout', + 'message_history_cutoff', +]); function setsEqual(a: ReadonlySet, b: ReadonlySet): boolean { if (a === b) return true; @@ -607,7 +635,7 @@ export class GuildOperationsService { Logger.error({guildId: updatedGuild.id, error}, 'Failed to update guild in search'); }); } - const auditLogChanges = this.helpers.computeGuildChanges(previousSnapshot, updatedGuild); + const auditLogChanges = this.helpers.computeGuildChanges(previousSnapshot, updatedGuild, GUILD_SETTINGS_AUDIT_KEYS); if (auditLogChanges.length > 0) { await this.helpers.recordAuditLog({ guildId, @@ -615,7 +643,6 @@ export class GuildOperationsService { action: AuditLogActionType.GUILD_UPDATE, targetId: guildId, auditLogReason: auditLogReason ?? null, - metadata: {name: updatedGuild.name}, changes: auditLogChanges, }); } diff --git a/fluxer_api/src/api/guild/services/data/GuildOwnershipService.ts b/fluxer_api/src/api/guild/services/data/GuildOwnershipService.ts index a25778dac..a70f1dd15 100644 --- a/fluxer_api/src/api/guild/services/data/GuildOwnershipService.ts +++ b/fluxer_api/src/api/guild/services/data/GuildOwnershipService.ts @@ -17,6 +17,8 @@ import {UnknownGuildError} from '@fluxer/errors/src/domains/guild/UnknownGuildEr import {UnknownGuildMemberError} from '@fluxer/errors/src/domains/guild/UnknownGuildMemberError'; import type {GuildResponse} from '@fluxer/schema/src/domains/guild/GuildResponseSchemas'; +const OWNERSHIP_AUDIT_KEYS: ReadonlySet = new Set(['owner_id']); + export class GuildOwnershipService { constructor( private readonly guildRepository: IGuildRepositoryAggregate, @@ -64,8 +66,7 @@ export class GuildOwnershipService { action: AuditLogActionType.GUILD_UPDATE, targetId: guildId, auditLogReason: auditLogReason ?? null, - metadata: {new_owner_id: newOwnerId.toString()}, - changes: this.helpers.computeGuildChanges(previousSnapshot, updatedGuild), + changes: this.helpers.computeGuildChanges(previousSnapshot, updatedGuild, OWNERSHIP_AUDIT_KEYS), }); return mapGuildToGuildResponse(updatedGuild); } diff --git a/fluxer_api/src/api/guild/services/data/GuildVanityService.ts b/fluxer_api/src/api/guild/services/data/GuildVanityService.ts index 9350f739a..84c79fd59 100644 --- a/fluxer_api/src/api/guild/services/data/GuildVanityService.ts +++ b/fluxer_api/src/api/guild/services/data/GuildVanityService.ts @@ -19,6 +19,8 @@ import {InputValidationError} from '@fluxer/errors/src/domains/core/InputValidat import {UnknownGuildError} from '@fluxer/errors/src/domains/guild/UnknownGuildError'; import type {GuildVanityURLResponse} from '@fluxer/schema/src/domains/guild/GuildResponseSchemas'; +const VANITY_AUDIT_KEYS: ReadonlySet = new Set(['vanity_url_code']); + export class GuildVanityService { constructor( private readonly guildRepository: IGuildRepositoryAggregate, @@ -83,8 +85,7 @@ export class GuildVanityService { action: AuditLogActionType.GUILD_UPDATE, targetId: guildId, auditLogReason: auditLogReason ?? null, - metadata: {vanity_url_code: ''}, - changes: this.helpers.computeGuildChanges(previousSnapshot, updatedGuild), + changes: this.helpers.computeGuildChanges(previousSnapshot, updatedGuild, VANITY_AUDIT_KEYS), }); return {code: null}; } @@ -122,8 +123,7 @@ export class GuildVanityService { action: AuditLogActionType.GUILD_UPDATE, targetId: guildId, auditLogReason: auditLogReason ?? null, - metadata: {vanity_url_code: code}, - changes: this.helpers.computeGuildChanges(previousSnapshot, updatedGuild), + changes: this.helpers.computeGuildChanges(previousSnapshot, updatedGuild, VANITY_AUDIT_KEYS), }); return {code}; } diff --git a/fluxer_api/src/api/guild/services/member/GuildMemberOperationsService.ts b/fluxer_api/src/api/guild/services/member/GuildMemberOperationsService.ts index 2f21d7ccf..72c2e77ad 100644 --- a/fluxer_api/src/api/guild/services/member/GuildMemberOperationsService.ts +++ b/fluxer_api/src/api/guild/services/member/GuildMemberOperationsService.ts @@ -177,6 +177,13 @@ export class GuildMemberOperationsService { connectionId: string | null; auditLogReason?: string | null; }): Promise { + if ( + params.previousChannelId !== null && + params.newChannelId !== null && + params.previousChannelId === params.newChannelId.toString() + ) { + return; + } const action = params.newChannelId === null ? AuditLogActionType.MEMBER_DISCONNECT : AuditLogActionType.MEMBER_MOVE; const previousSnapshot = params.previousChannelId !== null ? {channel_id: params.previousChannelId} : null; const nextSnapshot = params.newChannelId !== null ? {channel_id: params.newChannelId.toString()} : null; diff --git a/fluxer_api/src/api/guild/services/role/RoleOrderAuditUtils.ts b/fluxer_api/src/api/guild/services/role/RoleOrderAuditUtils.ts new file mode 100644 index 000000000..72996a91d --- /dev/null +++ b/fluxer_api/src/api/guild/services/role/RoleOrderAuditUtils.ts @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import type {RoleID} from '@app/api/BrandedTypes'; +import type {GuildRole} from '@app/api/models/GuildRole'; + +export function computeMovedIds(before: ReadonlyArray, after: ReadonlyArray): Set { + const width = after.length + 1; + const lengths = new Uint32Array((before.length + 1) * width); + const lengthAt = (i: number, j: number): number => lengths[i * width + j] ?? 0; + for (let i = before.length - 1; i >= 0; i--) { + for (let j = after.length - 1; j >= 0; j--) { + lengths[i * width + j] = + before[i] === after[j] ? lengthAt(i + 1, j + 1) + 1 : Math.max(lengthAt(i + 1, j), lengthAt(i, j + 1)); + } + } + const keptIndices = new Set(); + let i = 0; + let j = 0; + while (i < before.length && j < after.length) { + if (before[i] === after[j]) { + keptIndices.add(j); + i++; + j++; + } else if (lengthAt(i + 1, j) >= lengthAt(i, j + 1)) { + i++; + } else { + j++; + } + } + const movedIds = new Set(); + for (const [index, id] of after.entries()) { + if (!keptIndices.has(index)) { + movedIds.add(id); + } + } + return movedIds; +} + +export function getMemberListRoleOrderIds(roles: ReadonlyArray, everyoneRoleId: RoleID): Array { + return roles + .filter((role) => role.isHoisted && role.id !== everyoneRoleId) + .sort((a, b) => b.effectiveHoistPosition - a.effectiveHoistPosition || (a.id < b.id ? -1 : a.id > b.id ? 1 : 0)) + .map((role) => role.id); +} diff --git a/fluxer_api/src/api/guild/services/role/tests/RoleOrderAuditUtils.test.ts b/fluxer_api/src/api/guild/services/role/tests/RoleOrderAuditUtils.test.ts new file mode 100644 index 000000000..2a0eaa536 --- /dev/null +++ b/fluxer_api/src/api/guild/services/role/tests/RoleOrderAuditUtils.test.ts @@ -0,0 +1,128 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {createGuildID, createRoleID, type RoleID} from '@app/api/BrandedTypes'; +import type {GuildRoleRow} from '@app/api/database/types/GuildTypes'; +import {computeMovedIds, getMemberListRoleOrderIds} from '@app/api/guild/services/role/RoleOrderAuditUtils'; +import {GuildRole} from '@app/api/models/GuildRole'; +import {describe, expect, test} from 'vitest'; + +const GUILD_ID = createGuildID(100n); +const EVERYONE_ROLE_ID = createRoleID(100n); + +function createRole(overrides: Partial & Pick): GuildRole { + return new GuildRole({ + guild_id: GUILD_ID, + name: 'Role', + permissions: 0n, + position: 1, + hoist_position: null, + color: 0, + icon_hash: null, + unicode_emoji: null, + hoist: true, + mentionable: false, + version: 1, + ...overrides, + }); +} + +describe('computeMovedIds', () => { + test('drag up reports only the dragged id', () => { + expect(computeMovedIds(['a', 'b', 'c', 'd'], ['d', 'a', 'b', 'c'])).toEqual(new Set(['d'])); + }); + + test('drag down reports only the dragged id', () => { + expect(computeMovedIds(['a', 'b', 'c', 'd'], ['b', 'c', 'd', 'a'])).toEqual(new Set(['a'])); + }); + + test('drag into the middle reports only the dragged id', () => { + expect(computeMovedIds(['a', 'b', 'c', 'd', 'e'], ['a', 'd', 'b', 'c', 'e'])).toEqual(new Set(['d'])); + }); + + test('neighbour swap keeps the id that comes first after the swap', () => { + expect(computeMovedIds(['a', 'b', 'c'], ['b', 'a', 'c'])).toEqual(new Set(['a'])); + }); + + test('no change reports nothing', () => { + expect(computeMovedIds(['a', 'b', 'c'], ['a', 'b', 'c'])).toEqual(new Set()); + }); + + test('empty sequences report nothing', () => { + expect(computeMovedIds([], [])).toEqual(new Set()); + }); + + test('full reverse keeps only the first id after the reverse', () => { + expect(computeMovedIds(['a', 'b', 'c', 'd'], ['d', 'c', 'b', 'a'])).toEqual(new Set(['c', 'b', 'a'])); + }); + + test('ties between equally long subsequences go to the earliest index in after', () => { + expect(computeMovedIds(['x', 'a', 'b'], ['a', 'x', 'b'])).toEqual(new Set(['x'])); + expect(computeMovedIds(['a', 'x', 'b'], ['x', 'a', 'b'])).toEqual(new Set(['a'])); + expect(computeMovedIds(['a', 'b', 'c', 'd'], ['c', 'd', 'a', 'b'])).toEqual(new Set(['a', 'b'])); + }); + + test('repeated calls return the same ids in after order', () => { + const before = ['a', 'b', 'c', 'd', 'e', 'f']; + const after = ['f', 'd', 'a', 'e', 'b', 'c']; + const first = [...computeMovedIds(before, after)]; + const second = [...computeMovedIds(before, after)]; + expect(first).toEqual(second); + expect(first).toEqual(after.filter((id) => first.includes(id))); + }); + + test('ids only present in after are reported as moved', () => { + expect(computeMovedIds(['a', 'b'], ['a', 'n', 'b'])).toEqual(new Set(['n'])); + }); + + test('bigint ids compare by value', () => { + const before = [createRoleID(1n), createRoleID(2n), createRoleID(3n)]; + const after = [createRoleID(3n), createRoleID(1n), createRoleID(2n)]; + const moved = computeMovedIds(before, after); + expect(moved).toEqual(new Set([3n])); + expect(moved.has(createRoleID(3n))).toBe(true); + }); +}); + +describe('getMemberListRoleOrderIds', () => { + test('orders hoisted roles like fluxer_gateway guild_member_list_groups.erl:20-45 with the GuildRolesTab.tsx:133-141 id tie-break', () => { + const roles = [ + createRole({role_id: EVERYONE_ROLE_ID, position: 0}), + createRole({role_id: createRoleID(201n), position: 5}), + createRole({role_id: createRoleID(202n), position: 4, hoist_position: 9}), + createRole({role_id: createRoleID(203n), position: 3, hoist: false}), + createRole({role_id: createRoleID(205n), position: 2}), + createRole({role_id: createRoleID(204n), position: 1, hoist_position: 2}), + ]; + expect(getMemberListRoleOrderIds(roles, EVERYONE_ROLE_ID)).toEqual([202n, 201n, 204n, 205n]); + }); + + test('does not reorder the input array', () => { + const roles = [ + createRole({role_id: createRoleID(201n), position: 1}), + createRole({role_id: createRoleID(202n), position: 2}), + ]; + getMemberListRoleOrderIds(roles, EVERYONE_ROLE_ID); + expect(roles.map((role) => role.id)).toEqual([201n, 202n]); + }); + + test('a first custom hoist order that moves one role reports only that role', () => { + const before = [ + createRole({role_id: createRoleID(201n), position: 3}), + createRole({role_id: createRoleID(202n), position: 2}), + createRole({role_id: createRoleID(203n), position: 1}), + createRole({role_id: createRoleID(204n), position: 4, hoist: false}), + ]; + const after = [ + createRole({role_id: createRoleID(201n), position: 3, hoist_position: 2}), + createRole({role_id: createRoleID(202n), position: 2, hoist_position: 1}), + createRole({role_id: createRoleID(203n), position: 1, hoist_position: 3}), + createRole({role_id: createRoleID(204n), position: 4, hoist: false}), + ]; + expect( + computeMovedIds( + getMemberListRoleOrderIds(before, EVERYONE_ROLE_ID), + getMemberListRoleOrderIds(after, EVERYONE_ROLE_ID), + ), + ).toEqual(new Set([203n])); + }); +}); diff --git a/fluxer_api/src/api/guild/tests/GuildAuditLogChannelWriters.test.ts b/fluxer_api/src/api/guild/tests/GuildAuditLogChannelWriters.test.ts new file mode 100644 index 000000000..039975b99 --- /dev/null +++ b/fluxer_api/src/api/guild/tests/GuildAuditLogChannelWriters.test.ts @@ -0,0 +1,266 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {createChannel, createRole, setupTestGuildWithMembers} from '@app/api/guild/tests/GuildTestUtils'; +import {type ApiTestHarness, createApiTestHarness} from '@app/api/test/ApiTestHarness'; +import {HTTP_STATUS} from '@app/api/test/TestConstants'; +import {createBuilder} from '@app/api/test/TestRequestBuilder'; +import {AuditLogActionType} from '@fluxer/constants/src/AuditLogActionType'; +import {ChannelTypes, Permissions} from '@fluxer/constants/src/ChannelConstants'; +import type {ChannelResponse} from '@fluxer/schema/src/domains/channel/ChannelSchemas'; +import {afterEach, beforeEach, describe, expect, test} from 'vitest'; + +interface AuditLogChange { + key: string; + old_value?: unknown; + new_value?: unknown; +} + +interface AuditLogOptions { + channel_id?: string; + id?: string; + role_name?: string; + type?: number; +} + +interface AuditLogEntry { + id: string; + action_type: number; + user_id: string | null; + target_id: string | null; + reason?: string; + options?: AuditLogOptions; + changes?: Array; +} + +interface AuditLogResponse { + audit_log_entries: Array; + users: Array<{ + id: string; + }>; +} + +async function fetchAuditLog( + harness: ApiTestHarness, + token: string, + guildId: string, + actionType: AuditLogActionType, +): Promise { + return createBuilder(harness, token) + .get(`/guilds/${guildId}/audit-logs?action_type=${actionType}`) + .expect(HTTP_STATUS.OK) + .execute(); +} + +function requireEntry(entries: Array, predicate: (entry: AuditLogEntry) => boolean): AuditLogEntry { + const entry = entries.find(predicate); + if (!entry) { + throw new Error('Expected audit log entry was not recorded'); + } + return entry; +} + +function changeKeys(entry: AuditLogEntry): Array { + return (entry.changes ?? []).map((change) => change.key); +} + +describe('Guild audit log channel writers', () => { + let harness: ApiTestHarness; + beforeEach(async () => { + harness = await createApiTestHarness(); + }); + afterEach(async () => { + await harness?.shutdown(); + }); + test('records a voice channel created under a category and then its overwrite with the header reason', async () => { + const {owner, guild} = await setupTestGuildWithMembers(harness, 0); + const role = await createRole(harness, owner.token, guild.id, {name: 'Speakers'}); + const category = await createChannel(harness, owner.token, guild.id, 'Voice', ChannelTypes.GUILD_CATEGORY); + const reason = 'Set up the lounge'; + const voice = await createBuilder(harness, owner.token) + .post(`/guilds/${guild.id}/channels`) + .header('X-Audit-Log-Reason', reason) + .body({ + name: 'Lounge', + type: ChannelTypes.GUILD_VOICE, + parent_id: category.id, + permission_overwrites: [{id: role.id, type: 0, allow: Permissions.CONNECT.toString(), deny: '0'}], + }) + .expect(HTTP_STATUS.OK) + .execute(); + const createLog = await fetchAuditLog(harness, owner.token, guild.id, AuditLogActionType.CHANNEL_CREATE); + const createEntry = requireEntry(createLog.audit_log_entries, (entry) => entry.target_id === voice.id); + expect(createEntry.reason).toBe(reason); + expect(createEntry.changes?.find((change) => change.key === 'parent_id')?.new_value).toBe(category.id); + expect(changeKeys(createEntry)).not.toContain('permission_overwrite_count'); + const overwriteLog = await fetchAuditLog( + harness, + owner.token, + guild.id, + AuditLogActionType.CHANNEL_OVERWRITE_CREATE, + ); + const overwriteEntry = requireEntry( + overwriteLog.audit_log_entries, + (entry) => entry.target_id === role.id && entry.options?.channel_id === voice.id, + ); + expect(overwriteEntry.reason).toBe(reason); + expect(BigInt(overwriteEntry.id) > BigInt(createEntry.id)).toBe(true); + }); + test('records the url of a link channel on create and on a url-only update', async () => { + const {owner, guild} = await setupTestGuildWithMembers(harness, 0); + const link = await createBuilder(harness, owner.token) + .post(`/guilds/${guild.id}/channels`) + .body({name: 'docs', type: ChannelTypes.GUILD_LINK, url: 'https://fluxer.app/docs'}) + .expect(HTTP_STATUS.OK) + .execute(); + const createLog = await fetchAuditLog(harness, owner.token, guild.id, AuditLogActionType.CHANNEL_CREATE); + const createEntry = requireEntry(createLog.audit_log_entries, (entry) => entry.target_id === link.id); + expect(createEntry.changes?.find((change) => change.key === 'url')?.new_value).toBe('https://fluxer.app/docs'); + await createBuilder(harness, owner.token) + .patch(`/channels/${link.id}`) + .body({url: 'https://fluxer.app/help'}) + .expect(HTTP_STATUS.OK) + .execute(); + const updateLog = await fetchAuditLog(harness, owner.token, guild.id, AuditLogActionType.CHANNEL_UPDATE); + const updateEntry = requireEntry(updateLog.audit_log_entries, (entry) => entry.target_id === link.id); + expect(updateEntry.options?.type).toBe(ChannelTypes.GUILD_LINK); + expect(updateEntry.changes).toEqual([ + {key: 'url', old_value: 'https://fluxer.app/docs', new_value: 'https://fluxer.app/help'}, + ]); + }); + test('records a channel rename with the header reason', async () => { + const {owner, guild} = await setupTestGuildWithMembers(harness, 0); + const channel = await createChannel(harness, owner.token, guild.id, 'before-rename'); + const reason = 'Clearer name'; + await createBuilder(harness, owner.token) + .patch(`/channels/${channel.id}`) + .header('X-Audit-Log-Reason', reason) + .body({name: 'after-rename'}) + .expect(HTTP_STATUS.OK) + .execute(); + const log = await fetchAuditLog(harness, owner.token, guild.id, AuditLogActionType.CHANNEL_UPDATE); + const entry = requireEntry(log.audit_log_entries, (candidate) => candidate.target_id === channel.id); + expect(entry.user_id).toBe(owner.userId); + expect(entry.reason).toBe(reason); + expect(entry.changes).toEqual([{key: 'name', old_value: 'before-rename', new_value: 'after-rename'}]); + }); + test('records a permissions update as overwrite entries with the header reason and no channel update', async () => { + const {owner, guild} = await setupTestGuildWithMembers(harness, 0); + const channel = await createChannel(harness, owner.token, guild.id, 'announcements'); + const role = await createRole(harness, owner.token, guild.id, {name: 'Posters'}); + const reason = 'Restrict posting'; + await createBuilder(harness, owner.token) + .patch(`/channels/${channel.id}`) + .header('X-Audit-Log-Reason', reason) + .body({ + permission_overwrites: [ + {id: role.id, type: 0, allow: Permissions.SEND_MESSAGES.toString(), deny: '0'}, + {id: guild.id, type: 0, allow: '0', deny: Permissions.SEND_MESSAGES.toString()}, + ], + }) + .expect(HTTP_STATUS.OK) + .execute(); + const updateLog = await fetchAuditLog(harness, owner.token, guild.id, AuditLogActionType.CHANNEL_UPDATE); + expect(updateLog.audit_log_entries.filter((entry) => entry.target_id === channel.id)).toHaveLength(0); + const overwriteLog = await fetchAuditLog( + harness, + owner.token, + guild.id, + AuditLogActionType.CHANNEL_OVERWRITE_CREATE, + ); + const channelEntries = overwriteLog.audit_log_entries.filter((entry) => entry.options?.channel_id === channel.id); + expect(channelEntries.map((entry) => entry.target_id).sort()).toEqual([guild.id, role.id].sort()); + for (const entry of channelEntries) { + expect(entry.reason).toBe(reason); + } + }); + test('records a channel delete with the header reason', async () => { + const {owner, guild} = await setupTestGuildWithMembers(harness, 0); + const channel = await createChannel(harness, owner.token, guild.id, 'to-delete'); + const reason = 'No longer needed'; + await createBuilder(harness, owner.token) + .delete(`/channels/${channel.id}`) + .header('X-Audit-Log-Reason', reason) + .expect(HTTP_STATUS.NO_CONTENT) + .execute(); + const log = await fetchAuditLog(harness, owner.token, guild.id, AuditLogActionType.CHANNEL_DELETE); + const entry = requireEntry(log.audit_log_entries, (candidate) => candidate.target_id === channel.id); + expect(entry.reason).toBe(reason); + expect(entry.options?.type).toBe(ChannelTypes.GUILD_TEXT); + expect(changeKeys(entry)).not.toContain('permission_overwrite_count'); + }); + test('records overwrite create, update and delete on the permissions route with the reason and role name', async () => { + const {owner, guild} = await setupTestGuildWithMembers(harness, 0); + const channel = await createChannel(harness, owner.token, guild.id, 'overrides'); + const role = await createRole(harness, owner.token, guild.id, {name: 'Moderators'}); + const sendOnly = Permissions.SEND_MESSAGES; + const sendAndAttach = Permissions.SEND_MESSAGES | Permissions.ATTACH_FILES; + const putOverwrite = async (allow: bigint, reason: string) => { + await createBuilder(harness, owner.token) + .put(`/channels/${channel.id}/permissions/${role.id}`) + .header('X-Audit-Log-Reason', reason) + .body({type: 0, allow: allow.toString(), deny: '0'}) + .expect(HTTP_STATUS.NO_CONTENT) + .execute(); + }; + await putOverwrite(sendOnly, 'Grant sending'); + await putOverwrite(sendAndAttach, 'Grant uploads'); + await putOverwrite(sendAndAttach, 'Repeat uploads'); + await createBuilder(harness, owner.token) + .delete(`/channels/${channel.id}/permissions/${role.id}`) + .header('X-Audit-Log-Reason', 'Drop override') + .expect(HTTP_STATUS.NO_CONTENT) + .execute(); + const isRoleOverwrite = (entry: AuditLogEntry) => + entry.target_id === role.id && entry.options?.channel_id === channel.id; + const createEntries = ( + await fetchAuditLog(harness, owner.token, guild.id, AuditLogActionType.CHANNEL_OVERWRITE_CREATE) + ).audit_log_entries.filter(isRoleOverwrite); + const updateEntries = ( + await fetchAuditLog(harness, owner.token, guild.id, AuditLogActionType.CHANNEL_OVERWRITE_UPDATE) + ).audit_log_entries.filter(isRoleOverwrite); + const deleteEntries = ( + await fetchAuditLog(harness, owner.token, guild.id, AuditLogActionType.CHANNEL_OVERWRITE_DELETE) + ).audit_log_entries.filter(isRoleOverwrite); + expect(createEntries).toHaveLength(1); + expect(updateEntries).toHaveLength(1); + expect(deleteEntries).toHaveLength(1); + expect(createEntries[0]?.reason).toBe('Grant sending'); + expect(updateEntries[0]?.reason).toBe('Grant uploads'); + expect(deleteEntries[0]?.reason).toBe('Drop override'); + expect(updateEntries[0]?.changes).toEqual([ + {key: 'allow', old_value: sendOnly.toString(), new_value: sendAndAttach.toString()}, + ]); + for (const entry of [...createEntries, ...updateEntries, ...deleteEntries]) { + expect(entry.user_id).toBe(owner.userId); + expect(entry.options?.type).toBe(0); + expect(entry.options?.role_name).toBe('Moderators'); + } + }); + test('lists a member overwrite target in users', async () => { + const {owner, members, guild, channels} = await setupTestGuildWithMembers(harness, 1); + const member = members[0]; + const channel = channels[0]; + await createBuilder(harness, owner.token) + .put(`/channels/${channel.id}/permissions/${member.userId}`) + .body({type: 1, allow: Permissions.ATTACH_FILES.toString(), deny: '0'}) + .expect(HTTP_STATUS.NO_CONTENT) + .execute(); + const log = await fetchAuditLog(harness, owner.token, guild.id, AuditLogActionType.CHANNEL_OVERWRITE_CREATE); + const entry = requireEntry(log.audit_log_entries, (candidate) => candidate.target_id === member.userId); + expect(entry.options?.type).toBe(1); + expect(entry.options?.role_name).toBeUndefined(); + expect(log.users.map((user) => user.id)).toContain(member.userId); + }); + test('writes nothing for a channel update without an effective change', async () => { + const {owner, guild} = await setupTestGuildWithMembers(harness, 0); + const channel = await createChannel(harness, owner.token, guild.id, 'steady-name'); + await createBuilder(harness, owner.token) + .patch(`/channels/${channel.id}`) + .header('X-Audit-Log-Reason', 'Nothing to change') + .body({name: 'steady-name', topic: null}) + .expect(HTTP_STATUS.OK) + .execute(); + const log = await fetchAuditLog(harness, owner.token, guild.id, AuditLogActionType.CHANNEL_UPDATE); + expect(log.audit_log_entries.filter((entry) => entry.target_id === channel.id)).toHaveLength(0); + }); +}); diff --git a/fluxer_api/src/api/guild/tests/GuildAuditLogContentWriters.test.ts b/fluxer_api/src/api/guild/tests/GuildAuditLogContentWriters.test.ts new file mode 100644 index 000000000..b986dbe82 --- /dev/null +++ b/fluxer_api/src/api/guild/tests/GuildAuditLogContentWriters.test.ts @@ -0,0 +1,184 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {createTestAccount, setUserACLs, type TestAccount} from '@app/api/auth/tests/AuthTestUtils'; +import {getPngDataUrl} from '@app/api/emoji/tests/EmojiTestUtils'; +import { + addMemberRole, + createChannel, + createChannelInvite, + createRole, + deleteInvite, + setupTestGuildWithMembers, +} from '@app/api/guild/tests/GuildTestUtils'; +import {type ApiTestHarness, createApiTestHarness} from '@app/api/test/ApiTestHarness'; +import {HTTP_STATUS} from '@app/api/test/TestConstants'; +import {createBuilder} from '@app/api/test/TestRequestBuilder'; +import {createGuildEmoji, createWebhook, deleteWebhook, updateWebhook} from '@app/api/webhook/tests/WebhookTestUtils'; +import {AuditLogActionType} from '@fluxer/constants/src/AuditLogActionType'; +import {Permissions} from '@fluxer/constants/src/ChannelConstants'; +import type {GuildAuditLogListResponse} from '@fluxer/schema/src/domains/guild/GuildAuditLogSchemas'; +import type {GuildStickerWithUserResponse} from '@fluxer/schema/src/domains/guild/GuildEmojiSchemas'; +import {afterEach, beforeEach, describe, expect, test} from 'vitest'; + +async function listAuditLogs( + harness: ApiTestHarness, + token: string, + guildId: string, + actionType?: AuditLogActionType, +): Promise { + const query = actionType === undefined ? '' : `?action_type=${actionType}`; + return createBuilder(harness, token) + .get(`/guilds/${guildId}/audit-logs${query}`) + .expect(HTTP_STATUS.OK) + .execute(); +} + +async function grantGuildPermissions( + harness: ApiTestHarness, + owner: TestAccount, + guildId: string, + member: TestAccount, + permissions: bigint, +): Promise { + const role = await createRole(harness, owner.token, guildId, { + name: 'Audit moderator', + permissions: (Permissions.VIEW_CHANNEL | permissions).toString(), + }); + await addMemberRole(harness, owner.token, guildId, member.userId, role.id); +} + +describe('Guild audit log content writers', () => { + let harness: ApiTestHarness; + beforeEach(async () => { + harness = await createApiTestHarness(); + }); + afterEach(async () => { + await harness?.shutdown(); + }); + + test('types invite create options', async () => { + const {owner, guild} = await setupTestGuildWithMembers(harness, 0); + const channel = await createChannel(harness, owner.token, guild.id, 'invites'); + const invite = await createChannelInvite(harness, owner.token, channel.id); + const response = await listAuditLogs(harness, owner.token, guild.id, AuditLogActionType.INVITE_CREATE); + const entry = response.audit_log_entries.find((log) => log.target_id === invite.code); + expect(entry).toBeDefined(); + expect(Object.keys(entry?.options ?? {}).sort()).toEqual([ + 'channel_id', + 'inviter_id', + 'max_age', + 'max_uses', + 'temporary', + ]); + expect(entry?.options?.channel_id).toBe(channel.id); + expect(entry?.options?.inviter_id).toBe(owner.userId); + expect(typeof entry?.options?.max_age).toBe('number'); + expect(typeof entry?.options?.max_uses).toBe('number'); + expect(typeof entry?.options?.temporary).toBe('boolean'); + }); + + test('returns the inviter of an invite deleted by a moderator', async () => { + const {owner, members, guild, channels} = await setupTestGuildWithMembers(harness, 1); + const member = members[0]!; + const invite = await createChannelInvite(harness, member.token, channels[0]!.id); + await deleteInvite(harness, owner.token, invite.code); + const response = await listAuditLogs(harness, owner.token, guild.id, AuditLogActionType.INVITE_DELETE); + const entry = response.audit_log_entries.find((log) => log.target_id === invite.code); + expect(entry?.user_id).toBe(owner.userId); + expect(entry?.options?.inviter_id).toBe(member.userId); + expect(response.users.map((user) => user.id)).toContain(member.userId); + }); + + test('does not record a webhook update that changes nothing', async () => { + const {owner, guild} = await setupTestGuildWithMembers(harness, 0); + const channel = await createChannel(harness, owner.token, guild.id, 'hooks'); + const webhook = await createWebhook(harness, channel.id, owner.token, 'Audit Hook'); + await updateWebhook(harness, webhook.id, owner.token, {name: 'Audit Hook'}); + const unchanged = await listAuditLogs(harness, owner.token, guild.id, AuditLogActionType.WEBHOOK_UPDATE); + expect(unchanged.audit_log_entries.filter((log) => log.target_id === webhook.id)).toHaveLength(0); + await updateWebhook(harness, webhook.id, owner.token, {name: 'Renamed Hook'}); + const renamed = await listAuditLogs(harness, owner.token, guild.id, AuditLogActionType.WEBHOOK_UPDATE); + const entries = renamed.audit_log_entries.filter((log) => log.target_id === webhook.id); + expect(entries).toHaveLength(1); + expect(entries[0]?.changes).toEqual([{key: 'name', old_value: 'Audit Hook', new_value: 'Renamed Hook'}]); + }); + + test('returns the creator of a webhook deleted by another moderator', async () => { + const {owner, members, guild} = await setupTestGuildWithMembers(harness, 1); + const member = members[0]!; + await grantGuildPermissions(harness, owner, guild.id, member, Permissions.MANAGE_WEBHOOKS); + const channel = await createChannel(harness, owner.token, guild.id, 'hooks'); + const webhook = await createWebhook(harness, channel.id, owner.token, 'Owner Hook'); + await deleteWebhook(harness, webhook.id, member.token); + const response = await listAuditLogs(harness, owner.token, guild.id, AuditLogActionType.WEBHOOK_DELETE); + const entry = response.audit_log_entries.find((log) => log.target_id === webhook.id); + expect(entry?.user_id).toBe(member.userId); + expect(response.users.map((user) => user.id)).toContain(owner.userId); + }); + + test('does not record an emoji rename to the same name', async () => { + const {owner, guild} = await setupTestGuildWithMembers(harness, 0); + const emoji = await createGuildEmoji(harness, owner.token, guild.id, 'audit_emoji'); + await createBuilder(harness, owner.token) + .patch(`/guilds/${guild.id}/emojis/${emoji.id}`) + .body({name: 'audit_emoji'}) + .expect(HTTP_STATUS.OK) + .execute(); + const response = await listAuditLogs(harness, owner.token, guild.id, AuditLogActionType.EMOJI_UPDATE); + expect(response.audit_log_entries.filter((log) => log.target_id === emoji.id)).toHaveLength(0); + }); + + test('returns the uploader of an emoji deleted by a moderator', async () => { + const {owner, members, guild} = await setupTestGuildWithMembers(harness, 1); + const member = members[0]!; + await grantGuildPermissions(harness, owner, guild.id, member, Permissions.MANAGE_EXPRESSIONS); + const emoji = await createGuildEmoji(harness, owner.token, guild.id, 'owner_emoji'); + await createBuilder(harness, member.token) + .delete(`/guilds/${guild.id}/emojis/${emoji.id}`) + .expect(HTTP_STATUS.NO_CONTENT) + .execute(); + const response = await listAuditLogs(harness, owner.token, guild.id, AuditLogActionType.EMOJI_DELETE); + const entry = response.audit_log_entries.find((log) => log.target_id === emoji.id); + expect(entry?.user_id).toBe(member.userId); + expect(response.users.map((user) => user.id)).toContain(owner.userId); + }); + + test('does not record a sticker update that changes nothing', async () => { + const {owner, guild} = await setupTestGuildWithMembers(harness, 0); + const sticker = await createBuilder(harness, owner.token) + .post(`/guilds/${guild.id}/stickers`) + .body({name: 'audit_sticker', description: 'audit sticker', tags: [], image: getPngDataUrl()}) + .expect(HTTP_STATUS.OK) + .execute(); + await createBuilder(harness, owner.token) + .patch(`/guilds/${guild.id}/stickers/${sticker.id}`) + .body({name: 'audit_sticker', description: 'audit sticker', tags: []}) + .expect(HTTP_STATUS.OK) + .execute(); + const response = await listAuditLogs(harness, owner.token, guild.id, AuditLogActionType.STICKER_UPDATE); + expect(response.audit_log_entries.filter((log) => log.target_id === sticker.id)).toHaveLength(0); + }); + + test('serves the same entries on the admin route', async () => { + const {owner, members, guild, channels} = await setupTestGuildWithMembers(harness, 1); + const member = members[0]!; + const invite = await createChannelInvite(harness, member.token, channels[0]!.id); + await deleteInvite(harness, owner.token, invite.code); + await createRole(harness, owner.token, guild.id, { + name: 'Admin parity role', + permissions: Permissions.VIEW_CHANNEL.toString(), + }); + const admin = await createTestAccount(harness); + await setUserACLs(harness, admin, ['admin:authenticate', 'guild:audit_log:view']); + const publicResponse = await listAuditLogs(harness, owner.token, guild.id); + const adminResponse = await createBuilder(harness, admin.token) + .get(`/admin/guilds/${guild.id}/audit-logs`) + .expect(HTTP_STATUS.OK) + .execute(); + expect(publicResponse.audit_log_entries.length).toBeGreaterThan(0); + expect(adminResponse.audit_log_entries).toEqual(publicResponse.audit_log_entries); + expect(adminResponse.users.map((user) => user.id).sort()).toEqual( + publicResponse.users.map((user) => user.id).sort(), + ); + }); +}); diff --git a/fluxer_api/src/api/guild/tests/GuildAuditLogEntryMapper.test.ts b/fluxer_api/src/api/guild/tests/GuildAuditLogEntryMapper.test.ts new file mode 100644 index 000000000..8d2720268 --- /dev/null +++ b/fluxer_api/src/api/guild/tests/GuildAuditLogEntryMapper.test.ts @@ -0,0 +1,469 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {createGuildID, createUserID} from '@app/api/BrandedTypes'; +import { + collectGuildAuditLogUserIds, + GUILD_AUDIT_INTERNAL_CHANGE_KEYS, + isNoopGuildAuditLog, + mapGuildAuditLogEntry, +} from '@app/api/guild/GuildAuditLogEntryMapper'; +import type {GuildAuditLogChange} from '@app/api/guild/GuildAuditLogTypes'; +import {GuildAuditLog} from '@app/api/models/GuildAuditLog'; +import {AuditLogActionType} from '@fluxer/constants/src/AuditLogActionType'; +import {describe, expect, it} from 'vitest'; + +const GUILD_ID = createGuildID(1420000000000000000n); +const ACTOR_ID = '1420000000000000001'; +const TARGET_ID = '1420000000000000002'; +const OTHER_ID = '1420000000000000003'; + +const ALL_ACTIONS = Object.values(AuditLogActionType).filter( + (value): value is AuditLogActionType => typeof value === 'number', +); + +const SKIPPABLE_ACTIONS = [ + AuditLogActionType.GUILD_UPDATE, + AuditLogActionType.CHANNEL_UPDATE, + AuditLogActionType.CHANNEL_OVERWRITE_UPDATE, + AuditLogActionType.MEMBER_UPDATE, + AuditLogActionType.MEMBER_ROLE_UPDATE, + AuditLogActionType.MEMBER_MOVE, + AuditLogActionType.ROLE_UPDATE, + AuditLogActionType.WEBHOOK_UPDATE, + AuditLogActionType.EMOJI_UPDATE, + AuditLogActionType.STICKER_UPDATE, +]; + +const RECORDED_ACTIONS = ALL_ACTIONS.filter((action) => !SKIPPABLE_ACTIONS.includes(action)); + +const USER_TARGET_ACTIONS = [ + AuditLogActionType.MEMBER_KICK, + AuditLogActionType.MEMBER_PRUNE, + AuditLogActionType.MEMBER_BAN_ADD, + AuditLogActionType.MEMBER_BAN_REMOVE, + AuditLogActionType.MEMBER_UPDATE, + AuditLogActionType.MEMBER_ROLE_UPDATE, + AuditLogActionType.MEMBER_MOVE, + AuditLogActionType.MEMBER_DISCONNECT, + AuditLogActionType.BOT_ADD, +]; + +const OVERWRITE_ACTIONS = [ + AuditLogActionType.CHANNEL_OVERWRITE_CREATE, + AuditLogActionType.CHANNEL_OVERWRITE_UPDATE, + AuditLogActionType.CHANNEL_OVERWRITE_DELETE, +]; + +function makeLog(params: { + actionType: AuditLogActionType; + userId?: string; + targetId?: string | null; + reason?: string | null; + options?: Record; + changes?: GuildAuditLogChange | null; +}): GuildAuditLog { + return new GuildAuditLog({ + guild_id: GUILD_ID, + log_id: 1420000000000000100n, + user_id: createUserID(BigInt(params.userId ?? ACTOR_ID)), + target_id: params.targetId ?? null, + action_type: params.actionType, + reason: params.reason ?? null, + options: params.options ? new Map(Object.entries(params.options)) : null, + changes: params.changes ? JSON.stringify(params.changes) : null, + }); +} + +function userIdStrings(log: GuildAuditLog): Array { + return collectGuildAuditLogUserIds(log).map((id) => id.toString()); +} + +describe('mapGuildAuditLogEntry', () => { + it('keeps the identity fields', () => { + const entry = mapGuildAuditLogEntry(makeLog({actionType: AuditLogActionType.MEMBER_KICK, targetId: TARGET_ID})); + expect(entry.id).toBe('1420000000000000100'); + expect(entry.action_type).toBe(AuditLogActionType.MEMBER_KICK); + expect(entry.user_id).toBe(ACTOR_ID); + expect(entry.target_id).toBe(TARGET_ID); + }); + + it('types every schema option and drops unknown keys', () => { + const entry = mapGuildAuditLogEntry( + makeLog({ + actionType: AuditLogActionType.INVITE_DELETE, + options: { + channel_id: OTHER_ID, + count: '3', + delete_member_days: '7', + delete_message_seconds: '3600', + id: TARGET_ID, + integration_type: '1', + message_id: OTHER_ID, + members_removed: '4', + role_name: 'Moderators', + type: '1', + inviter_id: ACTOR_ID, + max_age: '86400', + max_uses: '10', + temporary: 'true', + uses: '2', + name: 'raw name', + new_owner_id: OTHER_ID, + vanity_url_code: 'fluxer', + role_id: OTHER_ID, + action: 'add', + timeout_reason: 'raw reason', + communication_disabled_until: '2026-09-13T00:00:00.000Z', + }, + }), + ); + expect(entry.options).toEqual({ + channel_id: OTHER_ID, + count: 3, + delete_member_days: '7', + delete_message_seconds: 3600, + id: TARGET_ID, + integration_type: 1, + message_id: OTHER_ID, + members_removed: 4, + role_name: 'Moderators', + type: 1, + inviter_id: ACTOR_ID, + max_age: 86400, + max_uses: 10, + temporary: true, + uses: 2, + }); + }); + + it('maps the legacy delete_message_days key onto delete_member_days', () => { + const legacyOnly = mapGuildAuditLogEntry( + makeLog({actionType: AuditLogActionType.MEMBER_BAN_ADD, options: {delete_message_days: '2'}}), + ); + expect(legacyOnly.options).toEqual({delete_member_days: '2'}); + const legacyFirst = mapGuildAuditLogEntry( + makeLog({ + actionType: AuditLogActionType.MEMBER_BAN_ADD, + options: {delete_message_days: '2', delete_member_days: '5'}, + }), + ); + expect(legacyFirst.options).toEqual({delete_member_days: '5'}); + const currentFirst = mapGuildAuditLogEntry( + makeLog({ + actionType: AuditLogActionType.MEMBER_BAN_ADD, + options: {delete_member_days: '5', delete_message_days: '2'}, + }), + ); + expect(currentFirst.options).toEqual({delete_member_days: '5'}); + }); + + it('drops numeric options that do not parse', () => { + const entry = mapGuildAuditLogEntry( + makeLog({ + actionType: AuditLogActionType.MEMBER_BAN_ADD, + options: {count: 'many', delete_message_seconds: 'NaN'}, + }), + ); + expect(entry.options).toBeUndefined(); + }); + + it('returns undefined options when nothing survives', () => { + expect(mapGuildAuditLogEntry(makeLog({actionType: AuditLogActionType.GUILD_UPDATE})).options).toBeUndefined(); + expect( + mapGuildAuditLogEntry(makeLog({actionType: AuditLogActionType.GUILD_UPDATE, options: {name: 'Fluxer'}})).options, + ).toBeUndefined(); + }); + + it('scrubs ip changes', () => { + const entry = mapGuildAuditLogEntry( + makeLog({ + actionType: AuditLogActionType.MEMBER_BAN_ADD, + changes: [ + {key: 'ip', new_value: '203.0.113.1'}, + {key: 'reason', new_value: 'spam'}, + ], + }), + ); + expect(entry.changes).toEqual([{key: 'reason', new_value: 'spam'}]); + }); + + it('returns undefined changes for empty and ip-only rows', () => { + expect(mapGuildAuditLogEntry(makeLog({actionType: AuditLogActionType.MEMBER_BAN_ADD, changes: []})).changes).toBe( + undefined, + ); + expect( + mapGuildAuditLogEntry( + makeLog({actionType: AuditLogActionType.MEMBER_BAN_ADD, changes: [{key: 'ip', new_value: '203.0.113.1'}]}), + ).changes, + ).toBeUndefined(); + expect(mapGuildAuditLogEntry(makeLog({actionType: AuditLogActionType.MEMBER_KICK})).changes).toBeUndefined(); + }); + + it('keeps an explicit reason trimmed', () => { + const entry = mapGuildAuditLogEntry( + makeLog({actionType: AuditLogActionType.MEMBER_KICK, targetId: TARGET_ID, reason: ' spam '}), + ); + expect(entry.reason).toBe('spam'); + }); + + it('returns undefined for a blank reason', () => { + const entry = mapGuildAuditLogEntry( + makeLog({actionType: AuditLogActionType.MEMBER_KICK, targetId: TARGET_ID, reason: ' '}), + ); + expect(entry.reason).toBeUndefined(); + }); + + it('falls back to the ban change reason', () => { + const entry = mapGuildAuditLogEntry( + makeLog({ + actionType: AuditLogActionType.MEMBER_BAN_ADD, + targetId: TARGET_ID, + changes: [{key: 'reason', new_value: 'body reason'}], + }), + ); + expect(entry.reason).toBe('body reason'); + }); + + it('prefers the explicit reason over the ban change reason', () => { + const entry = mapGuildAuditLogEntry( + makeLog({ + actionType: AuditLogActionType.MEMBER_BAN_ADD, + targetId: TARGET_ID, + reason: 'header reason', + changes: [{key: 'reason', new_value: 'body reason'}], + }), + ); + expect(entry.reason).toBe('header reason'); + }); + + it('ignores a blank ban change reason', () => { + const entry = mapGuildAuditLogEntry( + makeLog({ + actionType: AuditLogActionType.MEMBER_BAN_ADD, + targetId: TARGET_ID, + reason: ' ', + changes: [{key: 'reason', new_value: ' '}], + }), + ); + expect(entry.reason).toBeUndefined(); + }); + + it('falls back to the timeout_reason option for member updates', () => { + const entry = mapGuildAuditLogEntry( + makeLog({ + actionType: AuditLogActionType.MEMBER_UPDATE, + targetId: TARGET_ID, + options: {timeout_reason: 'cool off', communication_disabled_until: '2026-09-13T00:00:00.000Z'}, + changes: [{key: 'communication_disabled_until', new_value: '2026-09-13T00:00:00.000Z'}], + }), + ); + expect(entry.reason).toBe('cool off'); + expect(entry.options).toBeUndefined(); + }); + + it('ignores a blank timeout_reason option', () => { + const entry = mapGuildAuditLogEntry( + makeLog({actionType: AuditLogActionType.MEMBER_UPDATE, targetId: TARGET_ID, options: {timeout_reason: ' '}}), + ); + expect(entry.reason).toBeUndefined(); + }); + + it('never falls back for other actions', () => { + const entry = mapGuildAuditLogEntry( + makeLog({ + actionType: AuditLogActionType.MEMBER_KICK, + targetId: TARGET_ID, + options: {timeout_reason: 'cool off'}, + changes: [{key: 'reason', new_value: 'body reason'}], + }), + ); + expect(entry.reason).toBeUndefined(); + }); + + it.each(ALL_ACTIONS)('maps action %i without throwing', (actionType) => { + const log = makeLog({ + actionType, + targetId: TARGET_ID, + options: {channel_id: OTHER_ID, type: '1', inviter_id: OTHER_ID}, + changes: [ + {key: 'owner_id', new_value: OTHER_ID}, + {key: 'moderator_id', old_value: OTHER_ID}, + {key: 'creator_id', old_value: OTHER_ID}, + ], + }); + expect(() => mapGuildAuditLogEntry(log)).not.toThrow(); + expect(() => collectGuildAuditLogUserIds(log)).not.toThrow(); + }); +}); + +describe('collectGuildAuditLogUserIds', () => { + it('includes the actor and never a channel target', () => { + const log = makeLog({actionType: AuditLogActionType.CHANNEL_CREATE, targetId: TARGET_ID}); + expect(userIdStrings(log)).toEqual([ACTOR_ID]); + }); + + it.each(USER_TARGET_ACTIONS)('includes the target of user action %i', (actionType) => { + const log = makeLog({actionType, targetId: TARGET_ID}); + expect(userIdStrings(log)).toEqual([ACTOR_ID, TARGET_ID]); + }); + + it('includes the new owner of a guild update', () => { + const log = makeLog({ + actionType: AuditLogActionType.GUILD_UPDATE, + targetId: GUILD_ID.toString(), + changes: [{key: 'owner_id', old_value: TARGET_ID, new_value: OTHER_ID}], + }); + expect(userIdStrings(log)).toEqual([ACTOR_ID, OTHER_ID]); + }); + + it('includes the original moderator of an unban', () => { + const log = makeLog({ + actionType: AuditLogActionType.MEMBER_BAN_REMOVE, + targetId: TARGET_ID, + changes: [{key: 'moderator_id', old_value: OTHER_ID}], + }); + expect(userIdStrings(log)).toEqual([ACTOR_ID, TARGET_ID, OTHER_ID]); + }); + + it('includes the inviter of a deleted invite', () => { + const log = makeLog({ + actionType: AuditLogActionType.INVITE_DELETE, + targetId: 'abcdef', + options: {inviter_id: OTHER_ID}, + }); + expect(userIdStrings(log)).toEqual([ACTOR_ID, OTHER_ID]); + }); + + it('does not include the inviter of a created invite', () => { + const log = makeLog({ + actionType: AuditLogActionType.INVITE_CREATE, + targetId: 'abcdef', + options: {inviter_id: OTHER_ID}, + }); + expect(userIdStrings(log)).toEqual([ACTOR_ID]); + }); + + it.each([ + AuditLogActionType.WEBHOOK_DELETE, + AuditLogActionType.EMOJI_DELETE, + AuditLogActionType.STICKER_DELETE, + ])('includes the creator of deleted content for action %i', (actionType) => { + const log = makeLog({ + actionType, + targetId: TARGET_ID, + changes: [ + {key: 'name', old_value: 'blob'}, + {key: 'creator_id', old_value: OTHER_ID}, + ], + }); + expect(userIdStrings(log)).toEqual([ACTOR_ID, OTHER_ID]); + }); + + it.each(OVERWRITE_ACTIONS)('includes member overwrite targets for action %i', (actionType) => { + const memberLog = makeLog({actionType, targetId: TARGET_ID, options: {type: '1', channel_id: OTHER_ID}}); + expect(userIdStrings(memberLog)).toEqual([ACTOR_ID, TARGET_ID]); + const roleLog = makeLog({actionType, targetId: TARGET_ID, options: {type: '0', channel_id: OTHER_ID}}); + expect(userIdStrings(roleLog)).toEqual([ACTOR_ID]); + }); + + it('skips values that are not snowflakes', () => { + expect(userIdStrings(makeLog({actionType: AuditLogActionType.MEMBER_KICK, targetId: 'not-a-snowflake'}))).toEqual([ + ACTOR_ID, + ]); + expect(userIdStrings(makeLog({actionType: AuditLogActionType.MEMBER_KICK, targetId: '-1'}))).toEqual([ACTOR_ID]); + expect( + userIdStrings(makeLog({actionType: AuditLogActionType.MEMBER_KICK, targetId: '99999999999999999999'})), + ).toEqual([ACTOR_ID]); + const numericOwner = makeLog({ + actionType: AuditLogActionType.GUILD_UPDATE, + changes: [{key: 'owner_id', new_value: 1420}], + }); + expect(userIdStrings(numericOwner)).toEqual([ACTOR_ID]); + const missingCreator = makeLog({ + actionType: AuditLogActionType.EMOJI_DELETE, + changes: [{key: 'creator_id', old_value: null}], + }); + expect(userIdStrings(missingCreator)).toEqual([ACTOR_ID]); + }); + + it('collapses duplicates', () => { + const selfUpdate = makeLog({actionType: AuditLogActionType.MEMBER_UPDATE, targetId: ACTOR_ID}); + expect(userIdStrings(selfUpdate)).toEqual([ACTOR_ID]); + const unbanOfModerator = makeLog({ + actionType: AuditLogActionType.MEMBER_BAN_REMOVE, + targetId: TARGET_ID, + changes: [{key: 'moderator_id', old_value: TARGET_ID}], + }); + expect(userIdStrings(unbanOfModerator)).toEqual([ACTOR_ID, TARGET_ID]); + }); +}); + +describe('isNoopGuildAuditLog', () => { + it.each(SKIPPABLE_ACTIONS)('treats action %i with empty or null changes as a no-op', (actionType) => { + expect(isNoopGuildAuditLog(actionType, [])).toBe(true); + expect(isNoopGuildAuditLog(actionType, null)).toBe(true); + expect(isNoopGuildAuditLog(actionType, undefined)).toBe(true); + }); + + it.each(SKIPPABLE_ACTIONS)('treats action %i with only an ip change as a no-op', (actionType) => { + expect(isNoopGuildAuditLog(actionType, [{key: 'ip', new_value: '203.0.113.1'}])).toBe(true); + }); + + it.each(SKIPPABLE_ACTIONS)('keeps action %i with a real change', (actionType) => { + expect(isNoopGuildAuditLog(actionType, [{key: 'name', old_value: 'a', new_value: 'b'}])).toBe(false); + }); + + it('lists the internal guild change keys', () => { + expect([...GUILD_AUDIT_INTERNAL_CHANGE_KEYS].sort()).toEqual( + [ + 'guild_id', + 'member_count', + 'banner_width', + 'banner_height', + 'splash_width', + 'splash_height', + 'embed_splash_width', + 'embed_splash_height', + ].sort(), + ); + }); + + it.each([...GUILD_AUDIT_INTERNAL_CHANGE_KEYS])('treats a guild update of only %s as a no-op', (key) => { + expect(isNoopGuildAuditLog(AuditLogActionType.GUILD_UPDATE, [{key, old_value: 1, new_value: 2}])).toBe(true); + }); + + it('treats a dimension-only guild update as a no-op', () => { + expect( + isNoopGuildAuditLog(AuditLogActionType.GUILD_UPDATE, [ + {key: 'banner_width', old_value: 960, new_value: 1920}, + {key: 'banner_height', old_value: 540, new_value: 1080}, + {key: 'ip', new_value: '203.0.113.1'}, + ]), + ).toBe(true); + }); + + it('keeps a guild update that renames the guild', () => { + expect( + isNoopGuildAuditLog(AuditLogActionType.GUILD_UPDATE, [ + {key: 'banner_width', old_value: 960, new_value: 1920}, + {key: 'name', old_value: 'Old', new_value: 'New'}, + ]), + ).toBe(false); + }); + + it('only ignores internal keys for guild updates', () => { + expect( + isNoopGuildAuditLog(AuditLogActionType.MEMBER_UPDATE, [{key: 'banner_width', old_value: 1, new_value: 2}]), + ).toBe(false); + }); + + it('treats a member move without changes as a no-op but keeps a disconnect', () => { + expect(isNoopGuildAuditLog(AuditLogActionType.MEMBER_MOVE, null)).toBe(true); + expect(isNoopGuildAuditLog(AuditLogActionType.MEMBER_DISCONNECT, null)).toBe(false); + }); + + it.each(RECORDED_ACTIONS)('never treats action %i as a no-op', (actionType) => { + expect(isNoopGuildAuditLog(actionType, [])).toBe(false); + expect(isNoopGuildAuditLog(actionType, null)).toBe(false); + }); +}); diff --git a/fluxer_api/src/api/guild/tests/GuildAuditLogGuildWriters.test.ts b/fluxer_api/src/api/guild/tests/GuildAuditLogGuildWriters.test.ts new file mode 100644 index 000000000..646f37670 --- /dev/null +++ b/fluxer_api/src/api/guild/tests/GuildAuditLogGuildWriters.test.ts @@ -0,0 +1,183 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {setupTestGuildWithMembers, updateGuild} from '@app/api/guild/tests/GuildTestUtils'; +import {type ApiTestHarness, createApiTestHarness} from '@app/api/test/ApiTestHarness'; +import {HTTP_STATUS, TEST_CREDENTIALS} from '@app/api/test/TestConstants'; +import {createBuilder} from '@app/api/test/TestRequestBuilder'; +import {AuditLogActionType} from '@fluxer/constants/src/AuditLogActionType'; +import {GuildFeatures} from '@fluxer/constants/src/GuildConstants'; +import type {GuildResponse} from '@fluxer/schema/src/domains/guild/GuildResponseSchemas'; +import {afterEach, beforeEach, describe, expect, test} from 'vitest'; + +interface AuditLogChange { + key: string; + old_value?: unknown; + new_value?: unknown; +} + +interface AuditLogEntry { + id: string; + action_type: number; + user_id: string | null; + target_id: string | null; + reason?: string; + options?: Record; + changes?: Array; +} + +interface AuditLogResponse { + audit_log_entries: Array; + users: Array<{ + id: string; + }>; +} + +async function getGuildUpdateLogs(harness: ApiTestHarness, token: string, guildId: string): Promise { + return createBuilder(harness, token) + .get(`/guilds/${guildId}/audit-logs?action_type=${AuditLogActionType.GUILD_UPDATE}`) + .expect(HTTP_STATUS.OK) + .execute(); +} + +async function addGuildFeaturesForTesting( + harness: ApiTestHarness, + guildId: string, + features: Array, +): Promise { + await createBuilder<{ + success: boolean; + }>(harness, '') + .post(`/test/guilds/${guildId}/features`) + .body({add_features: features}) + .execute(); +} + +async function setVanityCode(harness: ApiTestHarness, token: string, guildId: string, code: string | null) { + await createBuilder<{ + code: string | null; + }>(harness, token) + .patch(`/guilds/${guildId}/vanity-url`) + .body({code}) + .expect(HTTP_STATUS.OK) + .execute(); +} + +describe('Guild update audit log writers', () => { + let harness: ApiTestHarness; + beforeEach(async () => { + harness = await createApiTestHarness(); + }); + afterEach(async () => { + await harness?.shutdown(); + }); + test('records a rename with an afk timeout change as exactly those two changes', async () => { + const {owner, guild} = await setupTestGuildWithMembers(harness, 0); + await updateGuild(harness, owner.token, guild.id, {name: 'Renamed Guild', afk_timeout: 900}); + const response = await getGuildUpdateLogs(harness, owner.token, guild.id); + expect(response.audit_log_entries).toHaveLength(1); + const entry = response.audit_log_entries[0]; + expect(entry?.user_id).toBe(owner.userId); + expect(entry?.target_id).toBe(guild.id); + expect(entry?.options).toBeUndefined(); + expect(entry?.changes).toEqual([ + {key: 'name', old_value: guild.name, new_value: 'Renamed Guild'}, + {key: 'afk_timeout', old_value: 300, new_value: 900}, + ]); + }); + test('records feature toggles as features changes', async () => { + const {owner, guild} = await setupTestGuildWithMembers(harness, 0); + const enabled = await updateGuild(harness, owner.token, guild.id, { + features: [...guild.features, GuildFeatures.INVITES_DISABLED, GuildFeatures.CLONE_EMOJI_ENABLED], + }); + await updateGuild(harness, owner.token, guild.id, { + features: enabled.features.filter((feature: string) => feature !== GuildFeatures.INVITES_DISABLED), + }); + const response = await getGuildUpdateLogs(harness, owner.token, guild.id); + expect(response.audit_log_entries).toHaveLength(2); + const [disableEntry, enableEntry] = response.audit_log_entries; + expect(enableEntry?.options).toBeUndefined(); + expect(enableEntry?.changes?.map((change) => change.key)).toEqual(['features']); + const enableChange = enableEntry?.changes?.[0]; + expect(enableChange?.old_value).not.toContain(GuildFeatures.INVITES_DISABLED); + expect(enableChange?.old_value).not.toContain(GuildFeatures.CLONE_EMOJI_ENABLED); + expect(enableChange?.new_value).toContain(GuildFeatures.INVITES_DISABLED); + expect(enableChange?.new_value).toContain(GuildFeatures.CLONE_EMOJI_ENABLED); + expect(disableEntry?.options).toBeUndefined(); + expect(disableEntry?.changes?.map((change) => change.key)).toEqual(['features']); + const disableChange = disableEntry?.changes?.[0]; + expect(disableChange?.old_value).toContain(GuildFeatures.INVITES_DISABLED); + expect(disableChange?.new_value).not.toContain(GuildFeatures.INVITES_DISABLED); + expect(disableChange?.new_value).toContain(GuildFeatures.CLONE_EMOJI_ENABLED); + }); + test('writes nothing when a patch sends the current name', async () => { + const {owner, guild} = await setupTestGuildWithMembers(harness, 0); + await updateGuild(harness, owner.token, guild.id, {name: guild.name}); + const response = await getGuildUpdateLogs(harness, owner.token, guild.id); + expect(response.audit_log_entries).toEqual([]); + }); + test('records the audit log reason header', async () => { + const {owner, guild} = await setupTestGuildWithMembers(harness, 0); + const auditLogReason = 'Rebranding the community'; + await createBuilder(harness, owner.token) + .patch(`/guilds/${guild.id}`) + .header('X-Audit-Log-Reason', auditLogReason) + .body({name: 'Reasoned Guild'}) + .expect(HTTP_STATUS.OK) + .execute(); + const response = await getGuildUpdateLogs(harness, owner.token, guild.id); + expect(response.audit_log_entries).toHaveLength(1); + const entry = response.audit_log_entries[0]; + expect(entry?.reason).toBe(auditLogReason); + expect(entry?.options).toBeUndefined(); + expect(entry?.changes).toEqual([{key: 'name', old_value: guild.name, new_value: 'Reasoned Guild'}]); + }); + test('records an ownership transfer as only an owner_id change', async () => { + const {owner, members, guild} = await setupTestGuildWithMembers(harness, 1); + const member = members[0]; + await createBuilder(harness, owner.token) + .post(`/guilds/${guild.id}/transfer-ownership`) + .body({new_owner_id: member.userId, password: TEST_CREDENTIALS.STRONG_PASSWORD}) + .expect(HTTP_STATUS.OK) + .execute(); + const response = await getGuildUpdateLogs(harness, member.token, guild.id); + expect(response.audit_log_entries).toHaveLength(1); + const entry = response.audit_log_entries[0]; + expect(entry?.user_id).toBe(owner.userId); + expect(entry?.target_id).toBe(guild.id); + expect(entry?.options).toBeUndefined(); + expect(entry?.changes).toEqual([{key: 'owner_id', old_value: owner.userId, new_value: member.userId}]); + const userIds = response.users.map((user) => user.id); + expect(userIds).toContain(owner.userId); + expect(userIds).toContain(member.userId); + }); + test('writes nothing when ownership is transferred to the current owner', async () => { + const {owner, guild} = await setupTestGuildWithMembers(harness, 0); + await createBuilder(harness, owner.token) + .post(`/guilds/${guild.id}/transfer-ownership`) + .body({new_owner_id: owner.userId, password: TEST_CREDENTIALS.STRONG_PASSWORD}) + .expect(HTTP_STATUS.OK) + .execute(); + const response = await getGuildUpdateLogs(harness, owner.token, guild.id); + expect(response.audit_log_entries).toEqual([]); + }); + test('records vanity url set, change and removal as only vanity_url_code changes', async () => { + const {owner, guild} = await setupTestGuildWithMembers(harness, 0); + await addGuildFeaturesForTesting(harness, guild.id, [GuildFeatures.VANITY_URL]); + const firstCode = 'audit-vanity-one'; + const secondCode = 'audit-vanity-two'; + await setVanityCode(harness, owner.token, guild.id, firstCode); + await setVanityCode(harness, owner.token, guild.id, secondCode); + await setVanityCode(harness, owner.token, guild.id, null); + const response = await getGuildUpdateLogs(harness, owner.token, guild.id); + expect(response.audit_log_entries).toHaveLength(3); + const [removeEntry, changeEntry, setEntry] = response.audit_log_entries; + for (const entry of response.audit_log_entries) { + expect(entry.user_id).toBe(owner.userId); + expect(entry.target_id).toBe(guild.id); + expect(entry.options).toBeUndefined(); + } + expect(setEntry?.changes).toEqual([{key: 'vanity_url_code', old_value: null, new_value: firstCode}]); + expect(changeEntry?.changes).toEqual([{key: 'vanity_url_code', old_value: firstCode, new_value: secondCode}]); + expect(removeEntry?.changes).toEqual([{key: 'vanity_url_code', old_value: secondCode, new_value: null}]); + }); +}); diff --git a/fluxer_api/src/api/guild/tests/GuildAuditLogMemberWriters.test.ts b/fluxer_api/src/api/guild/tests/GuildAuditLogMemberWriters.test.ts new file mode 100644 index 000000000..1cac3709f --- /dev/null +++ b/fluxer_api/src/api/guild/tests/GuildAuditLogMemberWriters.test.ts @@ -0,0 +1,386 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import { + addMemberRole, + createChannel, + createRole, + removeMemberRole, + setupTestGuildWithMembers, +} from '@app/api/guild/tests/GuildTestUtils'; +import {getGatewayService} from '@app/api/middleware/ServiceRegistry'; +import {type ApiTestHarness, createApiTestHarness} from '@app/api/test/ApiTestHarness'; +import {HTTP_STATUS} from '@app/api/test/TestConstants'; +import {createBuilder} from '@app/api/test/TestRequestBuilder'; +import {AuditLogActionType} from '@fluxer/constants/src/AuditLogActionType'; +import {ChannelTypes, Permissions} from '@fluxer/constants/src/ChannelConstants'; +import {MentionReplyPreferences} from '@fluxer/constants/src/UserConstants'; +import {afterEach, beforeEach, describe, expect, test, vi} from 'vitest'; + +interface AuditLogChange { + key: string; + old_value?: unknown; + new_value?: unknown; +} + +interface AuditLogEntry { + id: string; + action_type: number; + user_id: string | null; + target_id: string | null; + reason?: string; + options?: Record; + changes?: Array; +} + +interface AuditLogResponse { + audit_log_entries: Array; + users: Array<{ + id: string; + }>; +} + +async function listAuditLogs( + harness: ApiTestHarness, + token: string, + guildId: string, + actionType: AuditLogActionType, +): Promise { + return createBuilder(harness, token) + .get(`/guilds/${guildId}/audit-logs?action_type=${actionType}`) + .expect(HTTP_STATUS.OK) + .execute(); +} + +async function listTargetEntries( + harness: ApiTestHarness, + token: string, + guildId: string, + actionType: AuditLogActionType, + targetId: string, +): Promise> { + const response = await listAuditLogs(harness, token, guildId, actionType); + return response.audit_log_entries.filter((entry) => entry.target_id === targetId); +} + +function findChange(entry: AuditLogEntry | undefined, key: string): AuditLogChange | undefined { + return entry?.changes?.find((change) => change.key === key); +} + +async function banMember( + harness: ApiTestHarness, + token: string, + guildId: string, + userId: string, + body: Record, + headerReason?: string, +): Promise { + const builder = createBuilder(harness, token).put(`/guilds/${guildId}/bans/${userId}`).body(body); + if (headerReason !== undefined) { + builder.header('X-Audit-Log-Reason', headerReason); + } + await builder.expect(HTTP_STATUS.NO_CONTENT).execute(); +} + +async function patchMember( + harness: ApiTestHarness, + token: string, + guildId: string, + userId: string, + body: Record, + headerReason?: string, +): Promise { + const builder = createBuilder(harness, token).patch(`/guilds/${guildId}/members/${userId}`).body(body); + if (headerReason !== undefined) { + builder.header('X-Audit-Log-Reason', headerReason); + } + await builder.expect(HTTP_STATUS.OK).execute(); +} + +function oneHourFromNow(): string { + return new Date(Date.now() + 60 * 60 * 1000).toISOString(); +} + +describe('Guild audit log member and moderation writers', () => { + let harness: ApiTestHarness; + beforeEach(async () => { + harness = await createApiTestHarness(); + }); + afterEach(async () => { + await harness?.shutdown(); + }); + + test('records a kick with the header reason', async () => { + const {owner, members, guild} = await setupTestGuildWithMembers(harness, 1); + const member = members[0]; + await createBuilder(harness, owner.token) + .delete(`/guilds/${guild.id}/members/${member.userId}`) + .header('X-Audit-Log-Reason', 'Kick header reason') + .expect(HTTP_STATUS.NO_CONTENT) + .execute(); + const entries = await listTargetEntries( + harness, + owner.token, + guild.id, + AuditLogActionType.MEMBER_KICK, + member.userId, + ); + expect(entries).toHaveLength(1); + expect(entries[0]?.user_id).toBe(owner.userId); + expect(entries[0]?.reason).toBe('Kick header reason'); + }); + + test('uses the body reason for a ban without a header and records no options', async () => { + const {owner, members, guild} = await setupTestGuildWithMembers(harness, 1); + const member = members[0]; + await banMember(harness, owner.token, guild.id, member.userId, {reason: 'Body ban reason'}); + const entries = await listTargetEntries( + harness, + owner.token, + guild.id, + AuditLogActionType.MEMBER_BAN_ADD, + member.userId, + ); + expect(entries).toHaveLength(1); + expect(entries[0]?.reason).toBe('Body ban reason'); + expect(entries[0]?.options).toBeUndefined(); + expect(findChange(entries[0], 'reason')?.new_value).toBe('Body ban reason'); + }); + + test('records delete_message_seconds for a ban that deletes messages', async () => { + const {owner, members, guild} = await setupTestGuildWithMembers(harness, 1); + const member = members[0]; + await banMember(harness, owner.token, guild.id, member.userId, {delete_message_seconds: 3600}); + const entries = await listTargetEntries( + harness, + owner.token, + guild.id, + AuditLogActionType.MEMBER_BAN_ADD, + member.userId, + ); + expect(entries).toHaveLength(1); + expect(entries[0]?.options).toEqual({delete_message_seconds: 3600}); + }); + + test('records delete_message_days as delete_message_seconds', async () => { + const {owner, members, guild} = await setupTestGuildWithMembers(harness, 1); + const member = members[0]; + await banMember(harness, owner.token, guild.id, member.userId, {delete_message_days: 2}); + const entries = await listTargetEntries( + harness, + owner.token, + guild.id, + AuditLogActionType.MEMBER_BAN_ADD, + member.userId, + ); + expect(entries).toHaveLength(1); + expect(entries[0]?.options).toEqual({delete_message_seconds: 172800}); + }); + + test('keeps the header as the ban entry reason and the body reason in changes', async () => { + const {owner, members, guild} = await setupTestGuildWithMembers(harness, 1); + const member = members[0]; + await banMember(harness, owner.token, guild.id, member.userId, {reason: 'Body ban reason'}, 'Header ban reason'); + const entries = await listTargetEntries( + harness, + owner.token, + guild.id, + AuditLogActionType.MEMBER_BAN_ADD, + member.userId, + ); + expect(entries).toHaveLength(1); + expect(entries[0]?.reason).toBe('Header ban reason'); + expect(findChange(entries[0], 'reason')?.new_value).toBe('Body ban reason'); + }); + + test('records expires_at for a temporary ban', async () => { + const {owner, members, guild} = await setupTestGuildWithMembers(harness, 1); + const member = members[0]; + const bannedAfter = Date.now(); + await banMember(harness, owner.token, guild.id, member.userId, {ban_duration_seconds: 3600}); + const entries = await listTargetEntries( + harness, + owner.token, + guild.id, + AuditLogActionType.MEMBER_BAN_ADD, + member.userId, + ); + expect(entries).toHaveLength(1); + const expiresAt = findChange(entries[0], 'expires_at')?.new_value; + expect(typeof expiresAt).toBe('string'); + expect(Date.parse(expiresAt as string)).toBeGreaterThanOrEqual(bannedAfter + 3600 * 1000); + }); + + test('lists the original moderator when a different moderator unbans', async () => { + const {owner, members, guild} = await setupTestGuildWithMembers(harness, 2); + const [moderator, target] = members; + const moderatorRole = await createRole(harness, owner.token, guild.id, { + name: 'Ban moderator', + permissions: Permissions.BAN_MEMBERS.toString(), + }); + await addMemberRole(harness, owner.token, guild.id, moderator.userId, moderatorRole.id); + await banMember(harness, moderator.token, guild.id, target.userId, {}); + await createBuilder(harness, owner.token) + .delete(`/guilds/${guild.id}/bans/${target.userId}`) + .expect(HTTP_STATUS.NO_CONTENT) + .execute(); + const response = await listAuditLogs(harness, owner.token, guild.id, AuditLogActionType.MEMBER_BAN_REMOVE); + const entry = response.audit_log_entries.find((log) => log.target_id === target.userId); + expect(entry?.user_id).toBe(owner.userId); + expect(findChange(entry, 'moderator_id')?.old_value).toBe(moderator.userId); + expect(response.users.map((user) => user.id)).toContain(moderator.userId); + }); + + test('uses timeout_reason as the entry reason unless a header reason is sent', async () => { + const {owner, members, guild} = await setupTestGuildWithMembers(harness, 2); + const [bodyOnlyTarget, headerTarget] = members; + await patchMember(harness, owner.token, guild.id, bodyOnlyTarget.userId, { + communication_disabled_until: oneHourFromNow(), + timeout_reason: 'Timeout body reason', + }); + await patchMember( + harness, + owner.token, + guild.id, + headerTarget.userId, + { + communication_disabled_until: oneHourFromNow(), + timeout_reason: 'Timeout body reason', + }, + 'Timeout header reason', + ); + const bodyOnlyEntries = await listTargetEntries( + harness, + owner.token, + guild.id, + AuditLogActionType.MEMBER_UPDATE, + bodyOnlyTarget.userId, + ); + expect(bodyOnlyEntries).toHaveLength(1); + expect(bodyOnlyEntries[0]?.reason).toBe('Timeout body reason'); + expect(bodyOnlyEntries[0]?.options).toBeUndefined(); + expect(typeof findChange(bodyOnlyEntries[0], 'communication_disabled_until')?.new_value).toBe('string'); + const headerEntries = await listTargetEntries( + harness, + owner.token, + guild.id, + AuditLogActionType.MEMBER_UPDATE, + headerTarget.userId, + ); + expect(headerEntries).toHaveLength(1); + expect(headerEntries[0]?.reason).toBe('Timeout header reason'); + expect(headerEntries[0]?.options).toBeUndefined(); + }); + + test('writes nothing when clearing a timeout on a member without one', async () => { + const {owner, members, guild} = await setupTestGuildWithMembers(harness, 1); + const member = members[0]; + await patchMember(harness, owner.token, guild.id, member.userId, { + communication_disabled_until: null, + timeout_reason: 'Nothing to clear', + }); + const entries = await listTargetEntries( + harness, + owner.token, + guild.id, + AuditLogActionType.MEMBER_UPDATE, + member.userId, + ); + expect(entries).toHaveLength(0); + }); + + test('writes nothing for a mention_flags only update of the current member', async () => { + const {owner, members, guild} = await setupTestGuildWithMembers(harness, 1); + const member = members[0]; + await createBuilder(harness, member.token) + .patch(`/guilds/${guild.id}/members/@me`) + .body({mention_flags: MentionReplyPreferences.PREFER_NO_MENTION}) + .expect(HTTP_STATUS.OK) + .execute(); + const entries = await listTargetEntries( + harness, + owner.token, + guild.id, + AuditLogActionType.MEMBER_UPDATE, + member.userId, + ); + expect(entries).toHaveLength(0); + }); + + test('records a repeated nickname only once', async () => { + const {owner, members, guild} = await setupTestGuildWithMembers(harness, 1); + const member = members[0]; + await patchMember(harness, owner.token, guild.id, member.userId, {nick: 'Audit Nick'}); + await patchMember(harness, owner.token, guild.id, member.userId, {nick: 'Audit Nick'}); + const entries = await listTargetEntries( + harness, + owner.token, + guild.id, + AuditLogActionType.MEMBER_UPDATE, + member.userId, + ); + expect(entries).toHaveLength(1); + expect(findChange(entries[0], 'nick')).toEqual({key: 'nick', old_value: null, new_value: 'Audit Nick'}); + }); + + test('records role_name for member role changes and skips adding a role the member has', async () => { + const {owner, members, guild} = await setupTestGuildWithMembers(harness, 1); + const member = members[0]; + const role = await createRole(harness, owner.token, guild.id, { + name: 'Audit Member Role', + permissions: Permissions.VIEW_CHANNEL.toString(), + }); + await addMemberRole(harness, owner.token, guild.id, member.userId, role.id); + await addMemberRole(harness, owner.token, guild.id, member.userId, role.id); + await removeMemberRole(harness, owner.token, guild.id, member.userId, role.id); + const entries = await listTargetEntries( + harness, + owner.token, + guild.id, + AuditLogActionType.MEMBER_ROLE_UPDATE, + member.userId, + ); + expect(entries).toHaveLength(2); + const [removeEntry, addEntry] = entries; + expect(addEntry?.options).toEqual({role_name: 'Audit Member Role'}); + expect(findChange(addEntry, 'roles')).toEqual({key: 'roles', old_value: [], new_value: [role.id]}); + expect(removeEntry?.options).toEqual({role_name: 'Audit Member Role'}); + expect(findChange(removeEntry, 'roles')).toEqual({key: 'roles', old_value: [role.id], new_value: []}); + }); + + test('writes nothing for a voice move into the channel the member is already in', async () => { + const {owner, members, guild} = await setupTestGuildWithMembers(harness, 1); + const member = members[0]; + const firstChannel = await createChannel(harness, owner.token, guild.id, 'First voice', ChannelTypes.GUILD_VOICE); + const secondChannel = await createChannel(harness, owner.token, guild.id, 'Second voice', ChannelTypes.GUILD_VOICE); + const getVoiceState = vi.spyOn(getGatewayService(), 'getVoiceState'); + try { + getVoiceState.mockResolvedValue({channel_id: firstChannel.id}); + await patchMember(harness, owner.token, guild.id, member.userId, {channel_id: secondChannel.id}); + getVoiceState.mockResolvedValue({channel_id: secondChannel.id}); + await patchMember(harness, owner.token, guild.id, member.userId, {channel_id: secondChannel.id}); + } finally { + getVoiceState.mockRestore(); + } + const moves = await listTargetEntries( + harness, + owner.token, + guild.id, + AuditLogActionType.MEMBER_MOVE, + member.userId, + ); + expect(moves).toHaveLength(1); + expect(findChange(moves[0], 'channel_id')).toEqual({ + key: 'channel_id', + old_value: firstChannel.id, + new_value: secondChannel.id, + }); + const updates = await listTargetEntries( + harness, + owner.token, + guild.id, + AuditLogActionType.MEMBER_UPDATE, + member.userId, + ); + expect(updates).toHaveLength(0); + }); +}); diff --git a/fluxer_api/src/api/guild/tests/GuildAuditLogMessageWriters.test.ts b/fluxer_api/src/api/guild/tests/GuildAuditLogMessageWriters.test.ts new file mode 100644 index 000000000..7393c2584 --- /dev/null +++ b/fluxer_api/src/api/guild/tests/GuildAuditLogMessageWriters.test.ts @@ -0,0 +1,162 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {setupTestGuildWithMembers} from '@app/api/guild/tests/GuildTestUtils'; +import {deleteMessage, sendMessage} from '@app/api/message/tests/MessageTestUtils'; +import {type ApiTestHarness, createApiTestHarness} from '@app/api/test/ApiTestHarness'; +import {HTTP_STATUS} from '@app/api/test/TestConstants'; +import {createBuilder} from '@app/api/test/TestRequestBuilder'; +import {createWebhook, executeWebhook} from '@app/api/webhook/tests/WebhookTestUtils'; +import {AuditLogActionType} from '@fluxer/constants/src/AuditLogActionType'; +import {afterEach, beforeEach, describe, expect, test} from 'vitest'; + +interface AuditLogOptions { + channel_id?: string; + count?: number; + message_id?: string; +} + +interface AuditLogEntry { + id: string; + action_type: number; + user_id: string | null; + target_id: string | null; + reason?: string; + options?: AuditLogOptions; +} + +interface AuditLogResponse { + audit_log_entries: Array; +} + +async function fetchAuditLogEntries( + harness: ApiTestHarness, + token: string, + guildId: string, + actionType: AuditLogActionType, +): Promise> { + const response = await createBuilder(harness, token) + .get(`/guilds/${guildId}/audit-logs?action_type=${actionType}`) + .expect(HTTP_STATUS.OK) + .execute(); + return response.audit_log_entries; +} + +function requireEntry(entries: Array, predicate: (entry: AuditLogEntry) => boolean): AuditLogEntry { + const entry = entries.find(predicate); + if (!entry) { + throw new Error('Expected audit log entry was not recorded'); + } + return entry; +} + +describe('Guild audit log message writers', () => { + let harness: ApiTestHarness; + beforeEach(async () => { + harness = await createApiTestHarness(); + }); + afterEach(async () => { + await harness?.shutdown(); + }); + test("records a moderator deleting another member's message with the header reason", async () => { + const {owner, members, guild, channels} = await setupTestGuildWithMembers(harness, 1); + const member = members[0]; + const channel = channels[0]; + const message = await sendMessage(harness, member.token, channel.id, 'please remove this'); + const reason = 'Off-topic'; + await createBuilder(harness, owner.token) + .delete(`/channels/${channel.id}/messages/${message.id}`) + .header('X-Audit-Log-Reason', reason) + .expect(HTTP_STATUS.NO_CONTENT) + .execute(); + const entries = await fetchAuditLogEntries(harness, owner.token, guild.id, AuditLogActionType.MESSAGE_DELETE); + const entry = requireEntry(entries, (candidate) => candidate.target_id === message.id); + expect(entry.user_id).toBe(owner.userId); + expect(entry.reason).toBe(reason); + expect(entry.options?.channel_id).toBe(channel.id); + }); + test('records an author deleting their own message', async () => { + const {owner, members, guild, channels} = await setupTestGuildWithMembers(harness, 1); + const member = members[0]; + const channel = channels[0]; + const message = await sendMessage(harness, member.token, channel.id, 'my own mistake'); + await deleteMessage(harness, member.token, channel.id, message.id); + const entries = await fetchAuditLogEntries(harness, owner.token, guild.id, AuditLogActionType.MESSAGE_DELETE); + const entry = requireEntry(entries, (candidate) => candidate.target_id === message.id); + expect(entry.user_id).toBe(member.userId); + expect(entry.reason).toBeUndefined(); + expect(entry.options?.channel_id).toBe(channel.id); + }); + test('records a moderator deleting a webhook message', async () => { + const {owner, guild, channels} = await setupTestGuildWithMembers(harness, 0); + const channel = channels[0]; + const webhook = await createWebhook(harness, channel.id, owner.token, 'Relay'); + const {json: message} = await executeWebhook( + harness, + webhook.id, + webhook.token, + {content: 'relayed update', wait: true}, + 200, + ); + if (!message) { + throw new Error('Webhook execution did not return a message'); + } + const reason = 'Relay spam'; + await createBuilder(harness, owner.token) + .delete(`/channels/${channel.id}/messages/${message.id}`) + .header('X-Audit-Log-Reason', reason) + .expect(HTTP_STATUS.NO_CONTENT) + .execute(); + const entries = await fetchAuditLogEntries(harness, owner.token, guild.id, AuditLogActionType.MESSAGE_DELETE); + const entry = requireEntry(entries, (candidate) => candidate.target_id === message.id); + expect(entry.user_id).toBe(owner.userId); + expect(entry.reason).toBe(reason); + expect(entry.options?.channel_id).toBe(channel.id); + }); + test('records a bulk delete with the header reason and a numeric count', async () => { + const {owner, guild, channels} = await setupTestGuildWithMembers(harness, 0); + const channel = channels[0]; + const messageIds: Array = []; + for (let index = 0; index < 3; index++) { + const message = await sendMessage(harness, owner.token, channel.id, `bulk ${index}`); + messageIds.push(message.id); + } + const reason = 'Clearing a raid'; + await createBuilder(harness, owner.token) + .post(`/channels/${channel.id}/messages/bulk-delete`) + .header('X-Audit-Log-Reason', reason) + .body({message_ids: messageIds}) + .expect(HTTP_STATUS.NO_CONTENT) + .execute(); + const entries = await fetchAuditLogEntries(harness, owner.token, guild.id, AuditLogActionType.MESSAGE_BULK_DELETE); + const entry = requireEntry(entries, (candidate) => candidate.options?.channel_id === channel.id); + expect(entry.user_id).toBe(owner.userId); + expect(entry.reason).toBe(reason); + expect(entry.options?.count).toBe(3); + }); + test('records pin and unpin with the header reason', async () => { + const {owner, guild, channels} = await setupTestGuildWithMembers(harness, 0); + const channel = channels[0]; + const message = await sendMessage(harness, owner.token, channel.id, 'pin me'); + await createBuilder(harness, owner.token) + .put(`/channels/${channel.id}/pins/${message.id}`) + .header('X-Audit-Log-Reason', 'Important announcement') + .body(null) + .expect(HTTP_STATUS.NO_CONTENT) + .execute(); + await createBuilder(harness, owner.token) + .delete(`/channels/${channel.id}/pins/${message.id}`) + .header('X-Audit-Log-Reason', 'Announcement expired') + .expect(HTTP_STATUS.NO_CONTENT) + .execute(); + const pinEntries = await fetchAuditLogEntries(harness, owner.token, guild.id, AuditLogActionType.MESSAGE_PIN); + const pinEntry = requireEntry(pinEntries, (candidate) => candidate.target_id === message.id); + expect(pinEntry.user_id).toBe(owner.userId); + expect(pinEntry.reason).toBe('Important announcement'); + expect(pinEntry.options?.channel_id).toBe(channel.id); + const unpinEntries = await fetchAuditLogEntries(harness, owner.token, guild.id, AuditLogActionType.MESSAGE_UNPIN); + const unpinEntry = requireEntry(unpinEntries, (candidate) => candidate.target_id === message.id); + expect(unpinEntry.user_id).toBe(owner.userId); + expect(unpinEntry.reason).toBe('Announcement expired'); + expect(unpinEntry.options?.channel_id).toBe(channel.id); + }); +}); diff --git a/fluxer_api/src/api/guild/tests/GuildAuditLogRoleWriters.test.ts b/fluxer_api/src/api/guild/tests/GuildAuditLogRoleWriters.test.ts new file mode 100644 index 000000000..74265ace1 --- /dev/null +++ b/fluxer_api/src/api/guild/tests/GuildAuditLogRoleWriters.test.ts @@ -0,0 +1,274 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {createTestAccount, type TestAccount} from '@app/api/auth/tests/AuthTestUtils'; +import {createGuild, createRole, updateRole, updateRolePositions} from '@app/api/guild/tests/GuildTestUtils'; +import {type ApiTestHarness, createApiTestHarness} from '@app/api/test/ApiTestHarness'; +import {HTTP_STATUS} from '@app/api/test/TestConstants'; +import {createBuilder} from '@app/api/test/TestRequestBuilder'; +import {AuditLogActionType} from '@fluxer/constants/src/AuditLogActionType'; +import {Permissions} from '@fluxer/constants/src/ChannelConstants'; +import type {GuildResponse} from '@fluxer/schema/src/domains/guild/GuildResponseSchemas'; +import {afterEach, beforeEach, describe, expect, test} from 'vitest'; + +interface AuditLogChange { + key: string; + old_value?: unknown; + new_value?: unknown; +} + +interface AuditLogOptions { + role_name?: string; +} + +interface AuditLogEntry { + id: string; + action_type: number; + user_id: string | null; + target_id: string | null; + reason?: string; + options?: AuditLogOptions; + changes?: Array; +} + +interface AuditLogResponse { + audit_log_entries: Array; +} + +const ROLE_SNAPSHOT_KEYS = [ + 'role_id', + 'name', + 'permissions', + 'position', + 'hoist_position', + 'color', + 'icon_hash', + 'unicode_emoji', + 'hoist', + 'mentionable', +]; + +async function listEntries( + harness: ApiTestHarness, + token: string, + guildId: string, + actionType: AuditLogActionType, +): Promise> { + const response = await createBuilder(harness, token) + .get(`/guilds/${guildId}/audit-logs?action_type=${actionType}&limit=100`) + .expect(HTTP_STATUS.OK) + .execute(); + return response.audit_log_entries; +} + +function hasChangeKey(entry: AuditLogEntry, key: string): boolean { + return entry.changes?.some((change) => change.key === key) ?? false; +} + +describe('Guild audit log role writers', () => { + let harness: ApiTestHarness; + let owner: TestAccount; + let guild: GuildResponse; + beforeEach(async () => { + harness = await createApiTestHarness(); + owner = await createTestAccount(harness); + guild = await createGuild(harness, owner.token, 'Role Audit Guild'); + }); + afterEach(async () => { + await harness?.shutdown(); + }); + + async function createOrderedRoles(names: Array) { + const roles = []; + for (const name of names) { + roles.push(await createRole(harness, owner.token, guild.id, {name})); + } + await updateRolePositions( + harness, + owner.token, + guild.id, + roles.map((role, index) => ({id: role.id, position: roles.length - index})), + ); + return roles; + } + + test('records the full role snapshot on create without options', async () => { + const role = await createRole(harness, owner.token, guild.id, { + name: 'Snapshot', + color: 0xe67e22, + permissions: Permissions.VIEW_CHANNEL.toString(), + }); + const entries = await listEntries(harness, owner.token, guild.id, AuditLogActionType.ROLE_CREATE); + const entry = entries.find((log) => log.target_id === role.id); + expect(entry).toBeDefined(); + expect(entry?.user_id).toBe(owner.userId); + expect(entry?.options).toBeUndefined(); + expect(entry?.changes?.map((change) => change.key)).toEqual(ROLE_SNAPSHOT_KEYS); + expect(entry?.changes).toEqual([ + {key: 'role_id', new_value: role.id}, + {key: 'name', new_value: 'Snapshot'}, + {key: 'permissions', new_value: role.permissions}, + {key: 'position', new_value: 1}, + {key: 'hoist_position', new_value: null}, + {key: 'color', new_value: 0xe67e22}, + {key: 'icon_hash', new_value: null}, + {key: 'unicode_emoji', new_value: null}, + {key: 'hoist', new_value: false}, + {key: 'mentionable', new_value: false}, + ]); + }); + + test('writes nothing for a role patch that changes nothing', async () => { + const role = await createRole(harness, owner.token, guild.id, {name: 'Stable', color: 0x3498db}); + await updateRole(harness, owner.token, guild.id, role.id, {name: 'Stable', color: 0x3498db}); + const entries = await listEntries(harness, owner.token, guild.id, AuditLogActionType.ROLE_UPDATE); + expect(entries.filter((log) => log.target_id === role.id)).toEqual([]); + }); + + test('records the new role name on a rename', async () => { + const role = await createRole(harness, owner.token, guild.id, {name: 'Mods'}); + await createBuilder(harness, owner.token) + .patch(`/guilds/${guild.id}/roles/${role.id}`) + .header('X-Audit-Log-Reason', 'Clearer name') + .body({name: 'Moderators'}) + .expect(HTTP_STATUS.OK) + .execute(); + const entries = await listEntries(harness, owner.token, guild.id, AuditLogActionType.ROLE_UPDATE); + const roleEntries = entries.filter((log) => log.target_id === role.id); + expect(roleEntries).toHaveLength(1); + expect(roleEntries[0]?.reason).toBe('Clearer name'); + expect(roleEntries[0]?.options).toEqual({role_name: 'Moderators'}); + expect(roleEntries[0]?.changes).toEqual([{key: 'name', old_value: 'Mods', new_value: 'Moderators'}]); + }); + + test('keeps permissions_diff and records the role name on a permission update', async () => { + const role = await createRole(harness, owner.token, guild.id, { + name: 'Helpers', + permissions: Permissions.VIEW_CHANNEL.toString(), + }); + await updateRole(harness, owner.token, guild.id, role.id, { + permissions: (Permissions.VIEW_CHANNEL | Permissions.SEND_MESSAGES).toString(), + }); + const entries = await listEntries(harness, owner.token, guild.id, AuditLogActionType.ROLE_UPDATE); + const entry = entries.find((log) => log.target_id === role.id); + expect(entry?.options).toEqual({role_name: 'Helpers'}); + expect(entry?.changes?.map((change) => change.key)).toEqual(['permissions', 'permissions_diff']); + }); + + test('writes no role update for the duplicate flow', async () => { + const source = await createRole(harness, owner.token, guild.id, { + name: 'Source', + color: 0xe67e22, + permissions: Permissions.VIEW_CHANNEL.toString(), + }); + const copy = await createRole(harness, owner.token, guild.id, { + name: 'Source copy', + color: source.color, + permissions: source.permissions, + }); + await updateRole(harness, owner.token, guild.id, copy.id, {hoist: false, mentionable: false}); + const createEntries = await listEntries(harness, owner.token, guild.id, AuditLogActionType.ROLE_CREATE); + expect(createEntries.some((log) => log.target_id === copy.id)).toBe(true); + const updateEntries = await listEntries(harness, owner.token, guild.id, AuditLogActionType.ROLE_UPDATE); + expect(updateEntries.filter((log) => log.target_id === copy.id)).toEqual([]); + }); + + test('writes nothing for a reorder that only renumbers roles', async () => { + await createOrderedRoles(['Role A', 'Role B', 'Role C']); + const entries = await listEntries(harness, owner.token, guild.id, AuditLogActionType.ROLE_UPDATE); + expect(entries).toEqual([]); + }); + + test('records only the dragged role when a reorder moves one role', async () => { + const [roleA, roleB, roleC] = await createOrderedRoles(['Role A', 'Role B', 'Role C']); + await createBuilder(harness, owner.token) + .patch(`/guilds/${guild.id}/roles`) + .header('X-Audit-Log-Reason', 'Promote C') + .body([ + {id: roleC!.id, position: 3}, + {id: roleA!.id, position: 2}, + {id: roleB!.id, position: 1}, + ]) + .expect(HTTP_STATUS.NO_CONTENT) + .execute(); + const entries = await listEntries(harness, owner.token, guild.id, AuditLogActionType.ROLE_UPDATE); + expect(entries).toHaveLength(1); + expect(entries[0]?.target_id).toBe(roleC!.id); + expect(entries[0]?.reason).toBe('Promote C'); + expect(entries[0]?.options).toEqual({role_name: 'Role C'}); + expect(entries[0]?.changes).toEqual([{key: 'position', old_value: 1, new_value: 3}]); + }); + + test('records hoist position set and reset only for the role that moved in the member list', async () => { + const [roleA, roleB, roleC] = await createOrderedRoles(['Role A', 'Role B', 'Role C']); + for (const role of [roleA!, roleB!, roleC!]) { + await updateRole(harness, owner.token, guild.id, role.id, {hoist: true}); + } + await createBuilder(harness, owner.token) + .patch(`/guilds/${guild.id}/roles/hoist-positions`) + .body([ + {id: roleC!.id, hoist_position: 3}, + {id: roleA!.id, hoist_position: 2}, + {id: roleB!.id, hoist_position: 1}, + ]) + .expect(HTTP_STATUS.NO_CONTENT) + .execute(); + const afterSet = await listEntries(harness, owner.token, guild.id, AuditLogActionType.ROLE_UPDATE); + const setEntries = afterSet.filter((log) => hasChangeKey(log, 'hoist_position')); + expect(setEntries).toHaveLength(1); + expect(setEntries[0]?.target_id).toBe(roleC!.id); + expect(setEntries[0]?.options).toEqual({role_name: 'Role C'}); + expect(setEntries[0]?.changes).toEqual([{key: 'hoist_position', old_value: null, new_value: 3}]); + + await createBuilder(harness, owner.token) + .delete(`/guilds/${guild.id}/roles/hoist-positions`) + .header('X-Audit-Log-Reason', 'Back to role order') + .expect(HTTP_STATUS.NO_CONTENT) + .execute(); + const afterReset = await listEntries(harness, owner.token, guild.id, AuditLogActionType.ROLE_UPDATE); + const resetEntries = afterReset.filter((log) => + log.changes?.some((change) => change.key === 'hoist_position' && change.new_value === null), + ); + expect(resetEntries).toHaveLength(1); + expect(resetEntries[0]?.target_id).toBe(roleC!.id); + expect(resetEntries[0]?.reason).toBe('Back to role order'); + expect(resetEntries[0]?.options).toEqual({role_name: 'Role C'}); + expect(resetEntries[0]?.changes).toEqual([{key: 'hoist_position', old_value: 3, new_value: null}]); + }); + + test('records a hoist position write for a role outside the member list', async () => { + const role = await createRole(harness, owner.token, guild.id, {name: 'Hidden'}); + await createBuilder(harness, owner.token) + .patch(`/guilds/${guild.id}/roles/hoist-positions`) + .body([{id: role.id, hoist_position: 5}]) + .expect(HTTP_STATUS.NO_CONTENT) + .execute(); + const entries = await listEntries(harness, owner.token, guild.id, AuditLogActionType.ROLE_UPDATE); + expect(entries).toHaveLength(1); + expect(entries[0]?.target_id).toBe(role.id); + expect(entries[0]?.options).toEqual({role_name: 'Hidden'}); + expect(entries[0]?.changes).toEqual([{key: 'hoist_position', old_value: null, new_value: 5}]); + }); + + test('records the role snapshot and reason on delete', async () => { + const role = await createRole(harness, owner.token, guild.id, { + name: 'Doomed', + permissions: Permissions.VIEW_CHANNEL.toString(), + }); + await createBuilder(harness, owner.token) + .delete(`/guilds/${guild.id}/roles/${role.id}`) + .header('X-Audit-Log-Reason', 'Cleanup') + .expect(HTTP_STATUS.NO_CONTENT) + .execute(); + const entries = await listEntries(harness, owner.token, guild.id, AuditLogActionType.ROLE_DELETE); + const entry = entries.find((log) => log.target_id === role.id); + expect(entry).toBeDefined(); + expect(entry?.reason).toBe('Cleanup'); + expect(entry?.options).toBeUndefined(); + expect(entry?.changes?.map((change) => change.key)).toEqual(ROLE_SNAPSHOT_KEYS); + expect(entry?.changes?.find((change) => change.key === 'name')).toEqual({key: 'name', old_value: 'Doomed'}); + expect(entry?.changes?.find((change) => change.key === 'permissions')).toEqual({ + key: 'permissions', + old_value: role.permissions, + }); + }); +}); diff --git a/fluxer_api/src/api/guild/tests/GuildAuditLogService.test.ts b/fluxer_api/src/api/guild/tests/GuildAuditLogService.test.ts new file mode 100644 index 000000000..181f62ec5 --- /dev/null +++ b/fluxer_api/src/api/guild/tests/GuildAuditLogService.test.ts @@ -0,0 +1,378 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import { + createChannelID, + createGuildID, + createRoleID, + createUserID, + type RoleID, + type UserID, +} from '@app/api/BrandedTypes'; +import type {GuildAuditLogRow} from '@app/api/database/types/GuildTypes'; +import {mapGuildAuditLogEntry} from '@app/api/guild/GuildAuditLogEntryMapper'; +import {GuildAuditLogService} from '@app/api/guild/GuildAuditLogService'; +import type {IGuildRepositoryAggregate} from '@app/api/guild/repositories/IGuildRepositoryAggregate'; +import type {IGatewayService} from '@app/api/infrastructure/IGatewayService'; +import type {ISnowflakeService} from '@app/api/infrastructure/ISnowflakeService'; +import {ChannelPermissionOverwrite} from '@app/api/models/ChannelPermissionOverwrite'; +import {GuildAuditLog} from '@app/api/models/GuildAuditLog'; +import type {GuildRole} from '@app/api/models/GuildRole'; +import type {WorkerTaskName} from '@app/api/worker/WorkerLaneConfig'; +import {AuditLogActionType} from '@fluxer/constants/src/AuditLogActionType'; +import type {IWorkerService} from '@pkgs/worker/src/contracts/IWorkerService'; +import {describe, expect, it, vi} from 'vitest'; + +const GUILD_ID = createGuildID(1420000000000000000n); +const EVERYONE_ROLE_ID = createRoleID(1420000000000000000n); +const ACTOR_ID = createUserID(1420000000000000001n); +const MEMBER_ID = createUserID(1420000000000000002n); +const ROLE_ID = createRoleID(1420000000000000003n); +const CHANNEL_ID = createChannelID(1420000000000000004n); + +const SKIPPABLE_ACTIONS = [ + AuditLogActionType.GUILD_UPDATE, + AuditLogActionType.CHANNEL_UPDATE, + AuditLogActionType.CHANNEL_OVERWRITE_UPDATE, + AuditLogActionType.MEMBER_UPDATE, + AuditLogActionType.MEMBER_ROLE_UPDATE, + AuditLogActionType.MEMBER_MOVE, + AuditLogActionType.ROLE_UPDATE, + AuditLogActionType.WEBHOOK_UPDATE, + AuditLogActionType.EMOJI_UPDATE, + AuditLogActionType.STICKER_UPDATE, +]; + +function createService(roleNames: Map = new Map()) { + let nextLogId = 1420000000000001000n; + const createAuditLog = vi.fn(async (row: GuildAuditLogRow) => new GuildAuditLog(row)); + const batchDeleteAndCreateAuditLogs = vi.fn( + async (_guildId: unknown, _logs: Array, row: GuildAuditLogRow) => new GuildAuditLog(row), + ); + const getRole = vi.fn(async (roleId: RoleID) => { + const name = roleNames.get(roleId.toString()); + return name === undefined ? null : ({id: roleId, name} as unknown as GuildRole); + }); + const dispatchGuild = vi.fn().mockResolvedValue(undefined); + const addJob = vi.fn().mockResolvedValue(undefined); + const service = new GuildAuditLogService( + {createAuditLog, batchDeleteAndCreateAuditLogs, getRole} as unknown as IGuildRepositoryAggregate, + {generate: vi.fn(async () => nextLogId++)} as unknown as ISnowflakeService, + {addJob} as unknown as IWorkerService, + {dispatchGuild} as unknown as IGatewayService, + ); + return {service, createAuditLog, batchDeleteAndCreateAuditLogs, getRole, dispatchGuild}; +} + +function overwrites( + entries: Array<[RoleID | UserID, {type: number; allow: bigint; deny: bigint}]>, +): Map { + return new Map( + entries.map(([id, overwrite]) => [ + id, + new ChannelPermissionOverwrite({type: overwrite.type, allow_: overwrite.allow, deny_: overwrite.deny}), + ]), + ); +} + +function writtenRow(createAuditLog: ReturnType['createAuditLog'], index = 0): GuildAuditLogRow { + const call = createAuditLog.mock.calls[index]; + if (!call) { + throw new Error(`expected audit log write ${index}`); + } + return call[0]; +} + +function writtenOptions(row: GuildAuditLogRow): Record { + return Object.fromEntries(row.options ?? []); +} + +describe('GuildAuditLogService dispatch', () => { + it('dispatches the REST entry shape plus guild_id for an invite', async () => { + const {service, dispatchGuild} = createService(); + const log = await service + .createBuilder(GUILD_ID, ACTOR_ID) + .withAction(AuditLogActionType.INVITE_CREATE, 'abcdef') + .withMetadata({ + max_uses: '0', + max_age: '604800', + temporary: 'false', + channel_id: CHANNEL_ID.toString(), + inviter_id: ACTOR_ID.toString(), + }) + .withChanges(service.computeChanges(null, {code: 'abcdef', uses: 0})) + .commit(); + expect(log).not.toBeNull(); + expect(dispatchGuild).toHaveBeenCalledTimes(1); + expect(dispatchGuild).toHaveBeenCalledWith({ + guildId: GUILD_ID, + event: 'GUILD_AUDIT_LOG_ENTRY_CREATE', + data: {...mapGuildAuditLogEntry(log!), guild_id: GUILD_ID.toString()}, + }); + const data = dispatchGuild.mock.calls[0]![0].data; + expect(data.options).toEqual({ + max_uses: 0, + max_age: 604800, + temporary: false, + channel_id: CHANNEL_ID.toString(), + inviter_id: ACTOR_ID.toString(), + }); + }); + + it('dispatches the resolved reason for a legacy ban row', async () => { + const {service, dispatchGuild} = createService(); + const log = await service + .createBuilder(GUILD_ID, ACTOR_ID) + .withAction(AuditLogActionType.MEMBER_BAN_ADD, MEMBER_ID.toString()) + .withMetadata({delete_member_days: '0'}) + .withChanges([ + {key: 'user_id', new_value: MEMBER_ID.toString()}, + {key: 'reason', new_value: 'spam'}, + ]) + .commit(); + const data = dispatchGuild.mock.calls[0]![0].data; + expect(data).toEqual({...mapGuildAuditLogEntry(log!), guild_id: GUILD_ID.toString()}); + expect(data.reason).toBe('spam'); + expect(data.options).toEqual({delete_member_days: '0'}); + }); + + it('does not dispatch raw timeout options', async () => { + const {service, dispatchGuild} = createService(); + await service + .createBuilder(GUILD_ID, ACTOR_ID) + .withAction(AuditLogActionType.MEMBER_UPDATE, MEMBER_ID.toString()) + .withMetadata({timeout_reason: 'cool off', communication_disabled_until: '2026-09-13T00:00:00.000Z'}) + .withChanges([{key: 'communication_disabled_until', new_value: '2026-09-13T00:00:00.000Z'}]) + .commit(); + const data = dispatchGuild.mock.calls[0]![0].data; + expect(data.options).toBeUndefined(); + expect(data.reason).toBe('cool off'); + }); + + it('dispatches a batched bulk delete with a numeric count', async () => { + const {service, dispatchGuild, batchDeleteAndCreateAuditLogs} = createService(); + const logs = [1420000000000000200n, 1420000000000000199n].map( + (logId) => + new GuildAuditLog({ + guild_id: GUILD_ID, + log_id: logId, + user_id: ACTOR_ID, + target_id: null, + action_type: AuditLogActionType.MESSAGE_DELETE, + reason: null, + options: new Map([['channel_id', CHANNEL_ID.toString()]]), + changes: null, + }), + ); + const result = await service.batchConsecutiveMessageDeleteLogs(GUILD_ID, logs); + expect(batchDeleteAndCreateAuditLogs).toHaveBeenCalledTimes(1); + expect(result.createdLogs).toHaveLength(1); + expect(dispatchGuild).toHaveBeenCalledTimes(1); + const data = dispatchGuild.mock.calls[0]![0].data; + expect(data.action_type).toBe(AuditLogActionType.MESSAGE_BULK_DELETE); + expect(data.guild_id).toBe(GUILD_ID.toString()); + expect(data.options).toEqual({channel_id: CHANNEL_ID.toString(), count: 2}); + }); +}); + +describe('GuildAuditLogBuilder.commit', () => { + it.each(SKIPPABLE_ACTIONS)('skips action %i with empty changes', async (actionType) => { + const {service, createAuditLog, dispatchGuild} = createService(); + const result = await service + .createBuilder(GUILD_ID, ACTOR_ID) + .withAction(actionType, MEMBER_ID.toString()) + .withReason('ignored reason') + .withMetadata({role_name: 'Moderators'}) + .withChanges([]) + .commit(); + expect(result).toBeNull(); + expect(createAuditLog).not.toHaveBeenCalled(); + expect(dispatchGuild).not.toHaveBeenCalled(); + }); + + it.each(SKIPPABLE_ACTIONS)('skips action %i without changes', async (actionType) => { + const {service, createAuditLog, dispatchGuild} = createService(); + const result = await service + .createBuilder(GUILD_ID, ACTOR_ID) + .withAction(actionType, MEMBER_ID.toString()) + .commit(); + expect(result).toBeNull(); + expect(createAuditLog).not.toHaveBeenCalled(); + expect(dispatchGuild).not.toHaveBeenCalled(); + }); + + it('skips a guild update that only changes internal keys', async () => { + const {service, createAuditLog} = createService(); + const result = await service + .createBuilder(GUILD_ID, ACTOR_ID) + .withAction(AuditLogActionType.GUILD_UPDATE, GUILD_ID.toString()) + .withChanges([ + {key: 'member_count', old_value: 1, new_value: 2}, + {key: 'splash_width', old_value: null, new_value: 1920}, + ]) + .commit(); + expect(result).toBeNull(); + expect(createAuditLog).not.toHaveBeenCalled(); + }); + + it('records a kick without changes', async () => { + const {service, createAuditLog, dispatchGuild} = createService(); + const result = await service + .createBuilder(GUILD_ID, ACTOR_ID) + .withAction(AuditLogActionType.MEMBER_KICK, MEMBER_ID.toString()) + .withReason('rule 1') + .commit(); + expect(result).not.toBeNull(); + expect(createAuditLog).toHaveBeenCalledTimes(1); + expect(writtenRow(createAuditLog).reason).toBe('rule 1'); + expect(writtenRow(createAuditLog).changes).toBeNull(); + expect(dispatchGuild).toHaveBeenCalledTimes(1); + }); + + it('records a webhook create with empty changes', async () => { + const {service, createAuditLog, dispatchGuild} = createService(); + const result = await service + .createBuilder(GUILD_ID, ACTOR_ID) + .withAction(AuditLogActionType.WEBHOOK_CREATE, '1420000000000000005') + .withChanges([]) + .commit(); + expect(result).not.toBeNull(); + expect(createAuditLog).toHaveBeenCalledTimes(1); + expect(dispatchGuild).toHaveBeenCalledTimes(1); + }); +}); + +describe('GuildAuditLogService.recordPermissionOverwriteDiff', () => { + it('records role_name for a role overwrite', async () => { + const {service, createAuditLog, getRole} = createService(new Map([[ROLE_ID.toString(), 'Moderators']])); + await service.recordPermissionOverwriteDiff({ + guildId: GUILD_ID, + userId: ACTOR_ID, + channelId: CHANNEL_ID, + previous: null, + next: overwrites([[ROLE_ID, {type: 0, allow: 1024n, deny: 0n}]]), + }); + expect(getRole).toHaveBeenCalledTimes(1); + expect(getRole).toHaveBeenCalledWith(ROLE_ID, GUILD_ID); + const row = writtenRow(createAuditLog); + expect(row.action_type).toBe(AuditLogActionType.CHANNEL_OVERWRITE_CREATE); + expect(writtenOptions(row)).toEqual({ + id: ROLE_ID.toString(), + type: '0', + channel_id: CHANNEL_ID.toString(), + role_name: 'Moderators', + }); + }); + + it('records role_name on update and delete', async () => { + const {service, createAuditLog} = createService(new Map([[ROLE_ID.toString(), 'Moderators']])); + await service.recordPermissionOverwriteDiff({ + guildId: GUILD_ID, + userId: ACTOR_ID, + channelId: CHANNEL_ID, + previous: overwrites([[ROLE_ID, {type: 0, allow: 1024n, deny: 0n}]]), + next: overwrites([[ROLE_ID, {type: 0, allow: 0n, deny: 1024n}]]), + }); + await service.recordPermissionOverwriteDiff({ + guildId: GUILD_ID, + userId: ACTOR_ID, + channelId: CHANNEL_ID, + previous: overwrites([[ROLE_ID, {type: 0, allow: 0n, deny: 1024n}]]), + next: null, + }); + expect(writtenRow(createAuditLog, 0).action_type).toBe(AuditLogActionType.CHANNEL_OVERWRITE_UPDATE); + expect(writtenOptions(writtenRow(createAuditLog, 0)).role_name).toBe('Moderators'); + expect(writtenRow(createAuditLog, 1).action_type).toBe(AuditLogActionType.CHANNEL_OVERWRITE_DELETE); + expect(writtenOptions(writtenRow(createAuditLog, 1)).role_name).toBe('Moderators'); + }); + + it('records the entry without role_name when the role lookup fails', async () => { + const {service, createAuditLog, getRole} = createService(new Map([[ROLE_ID.toString(), 'Moderators']])); + getRole.mockRejectedValueOnce(new Error('no host available')); + await service.recordPermissionOverwriteDiff({ + guildId: GUILD_ID, + userId: ACTOR_ID, + channelId: CHANNEL_ID, + previous: null, + next: overwrites([[ROLE_ID, {type: 0, allow: 1024n, deny: 0n}]]), + }); + expect(createAuditLog).toHaveBeenCalledTimes(1); + expect(writtenOptions(writtenRow(createAuditLog))).toEqual({ + id: ROLE_ID.toString(), + type: '0', + channel_id: CHANNEL_ID.toString(), + }); + }); + + it('omits role_name for a member overwrite', async () => { + const {service, createAuditLog, getRole} = createService(new Map([[MEMBER_ID.toString(), 'Not a role']])); + await service.recordPermissionOverwriteDiff({ + guildId: GUILD_ID, + userId: ACTOR_ID, + channelId: CHANNEL_ID, + previous: null, + next: overwrites([[MEMBER_ID, {type: 1, allow: 1024n, deny: 0n}]]), + }); + expect(getRole).not.toHaveBeenCalled(); + expect(writtenOptions(writtenRow(createAuditLog))).toEqual({ + id: MEMBER_ID.toString(), + type: '1', + channel_id: CHANNEL_ID.toString(), + }); + }); + + it('omits role_name for @everyone', async () => { + const {service, createAuditLog, getRole} = createService(new Map([[GUILD_ID.toString(), '@everyone']])); + await service.recordPermissionOverwriteDiff({ + guildId: GUILD_ID, + userId: ACTOR_ID, + channelId: CHANNEL_ID, + previous: null, + next: overwrites([[EVERYONE_ROLE_ID, {type: 0, allow: 0n, deny: 1024n}]]), + }); + expect(getRole).not.toHaveBeenCalled(); + expect(writtenOptions(writtenRow(createAuditLog))).not.toHaveProperty('role_name'); + }); + + it('omits role_name when the role no longer exists', async () => { + const {service, createAuditLog, getRole} = createService(); + await service.recordPermissionOverwriteDiff({ + guildId: GUILD_ID, + userId: ACTOR_ID, + channelId: CHANNEL_ID, + previous: overwrites([[ROLE_ID, {type: 0, allow: 1024n, deny: 0n}]]), + next: null, + }); + expect(getRole).toHaveBeenCalledTimes(1); + expect(writtenOptions(writtenRow(createAuditLog))).not.toHaveProperty('role_name'); + }); + + it('passes the reason through', async () => { + const {service, createAuditLog} = createService(new Map([[ROLE_ID.toString(), 'Moderators']])); + await service.recordPermissionOverwriteDiff({ + guildId: GUILD_ID, + userId: ACTOR_ID, + channelId: CHANNEL_ID, + previous: null, + next: overwrites([[ROLE_ID, {type: 0, allow: 1024n, deny: 0n}]]), + reason: 'channel cleanup', + }); + expect(writtenRow(createAuditLog).reason).toBe('channel cleanup'); + }); + + it('writes nothing for an unchanged overwrite', async () => { + const {service, createAuditLog, getRole, dispatchGuild} = createService( + new Map([[ROLE_ID.toString(), 'Moderators']]), + ); + await service.recordPermissionOverwriteDiff({ + guildId: GUILD_ID, + userId: ACTOR_ID, + channelId: CHANNEL_ID, + previous: overwrites([[ROLE_ID, {type: 0, allow: 1024n, deny: 0n}]]), + next: overwrites([[ROLE_ID, {type: 0, allow: 1024n, deny: 0n}]]), + reason: 'no change', + }); + expect(getRole).not.toHaveBeenCalled(); + expect(createAuditLog).not.toHaveBeenCalled(); + expect(dispatchGuild).not.toHaveBeenCalled(); + }); +}); diff --git a/fluxer_api/src/api/guild/tests/GuildAuditLogs.test.ts b/fluxer_api/src/api/guild/tests/GuildAuditLogs.test.ts index 585625489..188fa12cd 100644 --- a/fluxer_api/src/api/guild/tests/GuildAuditLogs.test.ts +++ b/fluxer_api/src/api/guild/tests/GuildAuditLogs.test.ts @@ -213,9 +213,10 @@ describe('Guild audit log endpoint', () => { test('includes target users for user-target audit log entries', async () => { const {owner, members, guild} = await setupTestGuildWithMembers(harness, 1); const member = members[0]; + const banReason = 'Audit log user list check'; await createBuilder(harness, owner.token) .put(`/guilds/${guild.id}/bans/${member.userId}`) - .body({reason: 'Audit log user list check'}) + .body({reason: banReason}) .expect(HTTP_STATUS.NO_CONTENT) .execute(); const response = await createBuilder(harness, owner.token) @@ -224,6 +225,8 @@ describe('Guild audit log endpoint', () => { const userIds = response.users.map((user) => user.id); expect(userIds).toContain(owner.userId); expect(userIds).toContain(member.userId); + const entry = response.audit_log_entries.find((log) => log.target_id === member.userId); + expect(entry?.reason).toBe(banReason); }); test('fills a page from behind a long run of batched message deletes', async () => { const {owner, guild, channels} = await setupTestGuildWithMembers(harness, 0); diff --git a/fluxer_api/src/api/instance/InstanceConfigRepository.test.ts b/fluxer_api/src/api/instance/InstanceConfigRepository.test.ts index a10ecf41c..7a122ccbd 100644 --- a/fluxer_api/src/api/instance/InstanceConfigRepository.test.ts +++ b/fluxer_api/src/api/instance/InstanceConfigRepository.test.ts @@ -21,6 +21,10 @@ import { DEFAULT_EXPERIMENT_DELIVERY_CONFIG, type ExperimentDeliveryConfig, } from '@fluxer/schema/src/domains/experiment/ExperimentSchemas'; +import { + DEFAULT_GUILD_ACTIVITY_LOG_PRESENTATION_CONFIG, + type GuildActivityLogPresentationConfig, +} from '@fluxer/schema/src/domains/experiment/GuildActivityLogPresentationSchemas'; import { DEFAULT_MESSAGE_HOVER_TRACKING_CONFIG, type MessageHoverTrackingConfig, @@ -35,6 +39,7 @@ const VOICE_NOISE_SUPPRESSION_CONFIG_KEY = 'voice_noise_suppression_config'; const MESSAGE_HOVER_TRACKING_CONFIG_KEY = 'message_hover_tracking_config'; const MESSAGE_KEYBOARD_FOCUS_CONFIG_KEY = 'message_keyboard_focus_config'; const BLOCKED_MESSAGE_GROUPS_CONFIG_KEY = 'blocked_message_groups_config'; +const GUILD_ACTIVITY_LOG_PRESENTATION_CONFIG_KEY = 'guild_activity_log_presentation_config'; const EXPERIMENT_DELIVERY_CONFIG_KEY = 'experiment_delivery_config'; const APP_PUBLIC_CONFIG_KEY = 'app_public_config'; const INSTANCE_POLICY_CONFIG_KEY = 'instance_policy_config'; @@ -462,6 +467,55 @@ describe('InstanceConfigRepository', () => { await expect(repository.getBlockedMessageGroupsConfig()).resolves.toEqual(config); }); + it('returns the default guild activity log presentation config when the key is absent', async () => { + const executor = new CountingInMemoryCassandraQueryExecutor(); + setCassandraQueryExecutorForTesting(executor); + const kvProvider = new MockKVProvider(); + const repository = createRepository(kvProvider); + + await expect(repository.getGuildActivityLogPresentationConfig()).resolves.toEqual( + DEFAULT_GUILD_ACTIVITY_LOG_PRESENTATION_CONFIG, + ); + }); + + it.each([ + {name: 'unparseable text', stored: 'not-json'}, + {name: 'a json array', stored: '[]'}, + {name: 'out-of-range values', stored: '{"rollout_basis_points":99999}'}, + {name: 'a target that is not a snowflake', stored: '{"included_user_ids":["nope"]}'}, + ])('falls back to the default guild activity log presentation config for $name', async ({stored}) => { + const executor = new CountingInMemoryCassandraQueryExecutor(); + setCassandraQueryExecutorForTesting(executor); + const kvProvider = new MockKVProvider(); + const repository = createRepository(kvProvider); + + await repository.setConfig(GUILD_ACTIVITY_LOG_PRESENTATION_CONFIG_KEY, stored); + + await expect(repository.getGuildActivityLogPresentationConfig()).resolves.toEqual( + DEFAULT_GUILD_ACTIVITY_LOG_PRESENTATION_CONFIG, + ); + }); + + it('round-trips a stored guild activity log presentation config', async () => { + const executor = new CountingInMemoryCassandraQueryExecutor(); + setCassandraQueryExecutorForTesting(executor); + const kvProvider = new MockKVProvider(); + const repository = createRepository(kvProvider); + + const config: GuildActivityLogPresentationConfig = { + ...DEFAULT_GUILD_ACTIVITY_LOG_PRESENTATION_CONFIG, + enabled: true, + config_version: 5, + rollout_basis_points: 2500, + rollout_salt: 'guild-activity-log-presentation-v2', + included_user_ids: ['1400000000000000001'], + excluded_user_ids: ['1400000000000000002'], + }; + await repository.setGuildActivityLogPresentationConfig(config); + + await expect(repository.getGuildActivityLogPresentationConfig()).resolves.toEqual(config); + }); + it('fills newly added voice noise suppression fields from the schema defaults', async () => { const executor = new CountingInMemoryCassandraQueryExecutor(); setCassandraQueryExecutorForTesting(executor); diff --git a/fluxer_api/src/api/instance/InstanceConfigRepository.ts b/fluxer_api/src/api/instance/InstanceConfigRepository.ts index 547f54255..fcae0dfbf 100644 --- a/fluxer_api/src/api/instance/InstanceConfigRepository.ts +++ b/fluxer_api/src/api/instance/InstanceConfigRepository.ts @@ -40,6 +40,10 @@ import { type ExperimentDeliveryConfig, ExperimentDeliveryConfigSchema, } from '@fluxer/schema/src/domains/experiment/ExperimentSchemas'; +import { + type GuildActivityLogPresentationConfig, + GuildActivityLogPresentationConfigSchema, +} from '@fluxer/schema/src/domains/experiment/GuildActivityLogPresentationSchemas'; import { type MessageHoverTrackingConfig, MessageHoverTrackingConfigSchema, @@ -66,6 +70,7 @@ import {z} from 'zod'; const GATEWAY_ROLLOUT_CONFIG_KEY = 'gateway_rollout_config'; const VOICE_NOISE_SUPPRESSION_CONFIG_KEY = 'voice_noise_suppression_config'; +const GUILD_ACTIVITY_LOG_PRESENTATION_CONFIG_KEY = 'guild_activity_log_presentation_config'; const EXPERIMENT_DELIVERY_CONFIG_KEY = 'experiment_delivery_config'; const MESSAGE_HOVER_TRACKING_CONFIG_KEY = 'message_hover_tracking_config'; const MESSAGE_KEYBOARD_FOCUS_CONFIG_KEY = 'message_keyboard_focus_config'; @@ -352,6 +357,7 @@ type StoredConfigSection = | 'app public' | 'gateway rollout' | 'voice noise suppression' + | 'guild activity log presentation' | 'experiment delivery' | 'message hover tracking' | 'message keyboard focus' @@ -493,6 +499,10 @@ function parseStoredVoiceNoiseSuppressionConfig(raw: string | null): VoiceNoiseS return parseStoredConfigOrDefault(VoiceNoiseSuppressionConfigSchema, raw, 'voice noise suppression'); } +function parseStoredGuildActivityLogPresentationConfig(raw: string | null): GuildActivityLogPresentationConfig { + return parseStoredConfigOrDefault(GuildActivityLogPresentationConfigSchema, raw, 'guild activity log presentation'); +} + function parseStoredExperimentDeliveryConfig(raw: string | null): ExperimentDeliveryConfig { return parseStoredConfigOrDefault(ExperimentDeliveryConfigSchema, raw, 'experiment delivery'); } @@ -1027,6 +1037,7 @@ export class InstanceConfigRepository { parseStoredGatewayRolloutConfig(snapshot.get(GATEWAY_ROLLOUT_CONFIG_KEY) ?? null), ); parseStoredVoiceNoiseSuppressionConfig(snapshot.get(VOICE_NOISE_SUPPRESSION_CONFIG_KEY) ?? null); + parseStoredGuildActivityLogPresentationConfig(snapshot.get(GUILD_ACTIVITY_LOG_PRESENTATION_CONFIG_KEY) ?? null); parseStoredExperimentDeliveryConfig(snapshot.get(EXPERIMENT_DELIVERY_CONFIG_KEY) ?? null); parseStoredMessageHoverTrackingConfig(snapshot.get(MESSAGE_HOVER_TRACKING_CONFIG_KEY) ?? null); parseStoredMessageKeyboardFocusConfig(snapshot.get(MESSAGE_KEYBOARD_FOCUS_CONFIG_KEY) ?? null); @@ -1111,6 +1122,20 @@ export class InstanceConfigRepository { await this.setConfig(VOICE_NOISE_SUPPRESSION_CONFIG_KEY, JSON.stringify(validated)); } + async getGuildActivityLogPresentationConfig(): Promise { + const raw = await this.getConfig(GUILD_ACTIVITY_LOG_PRESENTATION_CONFIG_KEY); + return parseStoredGuildActivityLogPresentationConfig(raw); + } + + async setGuildActivityLogPresentationConfig(config: GuildActivityLogPresentationConfig): Promise { + const validated = validateStoredConfig( + GuildActivityLogPresentationConfigSchema, + config, + 'guild activity log presentation', + ); + await this.setConfig(GUILD_ACTIVITY_LOG_PRESENTATION_CONFIG_KEY, JSON.stringify(validated)); + } + async getExperimentDeliveryConfig(): Promise { const raw = await this.getConfig(EXPERIMENT_DELIVERY_CONFIG_KEY); return parseStoredExperimentDeliveryConfig(raw); diff --git a/fluxer_api/src/api/openapi/openapi.json b/fluxer_api/src/api/openapi/openapi.json index fa7f60c0a..75b539cb7 100644 --- a/fluxer_api/src/api/openapi/openapi.json +++ b/fluxer_api/src/api/openapi/openapi.json @@ -28261,7 +28261,10 @@ "voice_noise_suppression": {"$ref": "#/components/schemas/VoiceNoiseSuppressionAssignmentResponse"}, "message_hover_tracking": {"$ref": "#/components/schemas/MessageHoverTrackingAssignmentResponse"}, "message_keyboard_focus": {"$ref": "#/components/schemas/MessageKeyboardFocusAssignmentResponse"}, - "blocked_message_groups": {"$ref": "#/components/schemas/BlockedMessageGroupsAssignmentResponse"} + "blocked_message_groups": {"$ref": "#/components/schemas/BlockedMessageGroupsAssignmentResponse"}, + "guild_activity_log_presentation": { + "$ref": "#/components/schemas/GuildActivityLogPresentationAssignmentResponse" + } }, "additionalProperties": false } @@ -31999,6 +32002,17 @@ "additionalProperties": false }, "DonationCurrency": {"type": "string", "enum": ["usd", "eur", "brl", "inr", "pln", "try"]}, + "GuildActivityLogPresentationAssignmentResponse": { + "type": "object", + "properties": { + "enabled": {"type": "boolean"}, + "config_version": {"type": "integer", "minimum": -9007199254740991, "maximum": 9007199254740991}, + "user_targeted": {"type": "boolean"}, + "source": {"anyOf": [{"type": "string", "enum": ["user_rule", "canary"]}, {"type": "null"}]} + }, + "required": ["enabled", "config_version", "user_targeted", "source"], + "additionalProperties": false + }, "BlockedMessageGroupsAssignmentResponse": { "type": "object", "properties": { @@ -32328,7 +32342,10 @@ "description": "The ID of the affected entity (user, channel, role, invite code, etc.)", "anyOf": [{"type": "string"}, {"type": "null"}] }, - "reason": {"description": "The reason provided for the action", "type": "string"}, + "reason": { + "description": "The audit log reason. For bans and timeouts without an X-Audit-Log-Reason header this is the reason sent in the request body", + "type": "string" + }, "options": { "description": "Additional options depending on action type", "type": "object", @@ -32336,15 +32353,22 @@ "channel_id": {"description": "Channel ID for relevant actions", "type": "string"}, "count": {"description": "Count of items affected", "type": "number"}, "delete_member_days": { - "description": "Number of days of messages to delete on member ban", + "description": "Deprecated. Whole days of messages deleted, written only by bans recorded before delete_message_seconds", "type": "string" }, + "delete_message_seconds": { + "description": "Seconds of the banned user's messages that the ban deleted, present only when positive", + "type": "number" + }, "id": {"description": "ID of the affected entity", "type": "string"}, "integration_type": {"description": "Type of integration", "type": "number"}, "message_id": {"description": "Message ID for relevant actions", "type": "string"}, "members_removed": {"description": "Number of members removed", "type": "number"}, - "role_name": {"description": "Name of the role", "type": "string"}, - "type": {"description": "Type identifier", "type": "number"}, + "role_name": {"description": "Name of the role when the entry was written", "type": "string"}, + "type": { + "description": "Channel type for CHANNEL_CREATE, CHANNEL_UPDATE and CHANNEL_DELETE. Overwrite target type (0 role, 1 member) for CHANNEL_OVERWRITE_*", + "type": "number" + }, "inviter_id": {"description": "ID of the user who created the invite", "type": "string"}, "max_age": {"description": "Maximum age of the invite in seconds", "type": "number"}, "max_uses": {"description": "Maximum number of uses for the invite", "type": "number"}, diff --git a/fluxer_api/src/api/utils/AuditSerializationUtils.ts b/fluxer_api/src/api/utils/AuditSerializationUtils.ts index 5e9d8363c..c64e0c303 100644 --- a/fluxer_api/src/api/utils/AuditSerializationUtils.ts +++ b/fluxer_api/src/api/utils/AuditSerializationUtils.ts @@ -5,6 +5,7 @@ import type {Guild} from '@app/api/models/Guild'; import type {GuildEmoji} from '@app/api/models/GuildEmoji'; import type {GuildSticker} from '@app/api/models/GuildSticker'; import {toIdString, toSortedIdArray} from '@app/api/utils/IdUtils'; +import {ChannelTypes} from '@fluxer/constants/src/ChannelConstants'; export function serializeGuildForAudit(guild: Guild): Record { return { @@ -49,6 +50,7 @@ export function serializeChannelForAudit(channel: Channel): Record = [ + { + value: AuditLogActionType.GUILD_UPDATE, + label: COMMUNITY_UPDATED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.GUILD, + }, + { + value: AuditLogActionType.CHANNEL_CREATE, + label: CHANNEL_CREATED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.CHANNEL, + }, + { + value: AuditLogActionType.CHANNEL_UPDATE, + label: CHANNEL_UPDATED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.CHANNEL, + }, + { + value: AuditLogActionType.CHANNEL_DELETE, + label: CHANNEL_DELETED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.CHANNEL, + }, + { + value: AuditLogActionType.CHANNEL_OVERWRITE_CREATE, + label: PERMISSION_OVERRIDE_ADDED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.CHANNEL, + }, + { + value: AuditLogActionType.CHANNEL_OVERWRITE_UPDATE, + label: PERMISSION_OVERRIDE_UPDATED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.CHANNEL, + }, + { + value: AuditLogActionType.CHANNEL_OVERWRITE_DELETE, + label: PERMISSION_OVERRIDE_REMOVED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.CHANNEL, + }, + { + value: AuditLogActionType.MEMBER_KICK, + label: MEMBER_KICKED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.MEMBER, + }, + { + value: AuditLogActionType.MEMBER_BAN_ADD, + label: MEMBER_BANNED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.MEMBER, + }, + { + value: AuditLogActionType.MEMBER_BAN_REMOVE, + label: MEMBER_UNBANNED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.MEMBER, + }, + { + value: AuditLogActionType.MEMBER_UPDATE, + label: MEMBER_UPDATED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.MEMBER, + }, + { + value: AuditLogActionType.MEMBER_ROLE_UPDATE, + label: MEMBER_ROLES_UPDATED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.MEMBER, + }, + { + value: AuditLogActionType.MEMBER_MOVE, + label: MEMBER_MOVED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.MEMBER, + }, + { + value: AuditLogActionType.MEMBER_DISCONNECT, + label: MEMBER_DISCONNECTED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.MEMBER, + }, + { + value: AuditLogActionType.BOT_ADD, + label: BOT_ADDED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.MEMBER, + }, + { + value: AuditLogActionType.ROLE_CREATE, + label: ROLE_CREATED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.ROLE, + }, + { + value: AuditLogActionType.ROLE_UPDATE, + label: ROLE_UPDATED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.ROLE, + }, + { + value: AuditLogActionType.ROLE_DELETE, + label: ROLE_DELETED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.ROLE, + }, + { + value: AuditLogActionType.INVITE_CREATE, + label: INVITE_CREATED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.INVITE, + }, + { + value: AuditLogActionType.INVITE_DELETE, + label: INVITE_DELETED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.INVITE, + }, + { + value: AuditLogActionType.WEBHOOK_CREATE, + label: WEBHOOK_CREATED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.WEBHOOK, + }, + { + value: AuditLogActionType.WEBHOOK_UPDATE, + label: WEBHOOK_UPDATED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.WEBHOOK, + }, + { + value: AuditLogActionType.WEBHOOK_DELETE, + label: WEBHOOK_DELETED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.WEBHOOK, + }, + { + value: AuditLogActionType.EMOJI_CREATE, + label: EMOJI_CREATED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.EMOJI, + }, + { + value: AuditLogActionType.EMOJI_UPDATE, + label: EMOJI_UPDATED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.EMOJI, + }, + { + value: AuditLogActionType.EMOJI_DELETE, + label: EMOJI_DELETED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.EMOJI, + }, + { + value: AuditLogActionType.STICKER_CREATE, + label: STICKER_CREATED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.STICKER, + }, + { + value: AuditLogActionType.STICKER_UPDATE, + label: STICKER_UPDATED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.STICKER, + }, + { + value: AuditLogActionType.STICKER_DELETE, + label: STICKER_DELETED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.STICKER, + }, + { + value: AuditLogActionType.MESSAGE_DELETE, + label: MESSAGE_DELETED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.MESSAGE, + }, + { + value: AuditLogActionType.MESSAGE_BULK_DELETE, + label: MESSAGES_DELETED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.MESSAGE, + }, + { + value: AuditLogActionType.MESSAGE_PIN, + label: MESSAGE_PINNED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.MESSAGE, + }, + { + value: AuditLogActionType.MESSAGE_UNPIN, + label: MESSAGE_UNPINNED_DESCRIPTOR, + targetType: AUDIT_LOG_TARGET_TYPES.MESSAGE, + }, +]; + +export const LEGACY_AUDIT_LOG_ACTIONS: ReadonlyArray = [ { value: AuditLogActionType.GUILD_UPDATE, label: COMMUNITY_UPDATED_DESCRIPTOR, @@ -390,15 +573,33 @@ export const AUDIT_LOG_ACTIONS: ReadonlyArray = [ }, ]; +const translateAuditLogActions = ( + i18n: I18n, + actions: ReadonlyArray, +): Array<{ + value: AuditLogActionType; + label: string; + targetType: AuditLogTargetType; +}> => + actions.map((action) => ({ + ...action, + label: i18n._(action.label), + })); + export function getTranslatedAuditLogActions(i18n: I18n): Array<{ value: AuditLogActionType; label: string; targetType: AuditLogTargetType; }> { - return AUDIT_LOG_ACTIONS.map((action) => ({ - ...action, - label: i18n._(action.label), - })); + return translateAuditLogActions(i18n, AUDIT_LOG_ACTIONS); +} + +export function getLegacyTranslatedAuditLogActions(i18n: I18n): Array<{ + value: AuditLogActionType; + label: string; + targetType: AuditLogTargetType; +}> { + return translateAuditLogActions(i18n, LEGACY_AUDIT_LOG_ACTIONS); } export const AUDIT_LOG_TARGET_LABELS: Record = { diff --git a/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.test.tsx b/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.test.tsx new file mode 100644 index 000000000..c18b07fc0 --- /dev/null +++ b/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.test.tsx @@ -0,0 +1,414 @@ +// @vitest-environment happy-dom +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {GuildAuditLogSentence} from '@app/features/guild/components/modals/guild_tabs/GuildAuditLogSentence'; +import type {AuditLogSentence} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogPresentationTypes'; +import {AppI18nProvider} from '@app/features/i18n/components/AppI18nProvider'; +import {ChannelTypes} from '@fluxer/constants/src/ChannelConstants'; +import {type MessageDescriptor, setupI18n} from '@lingui/core'; +import type React from 'react'; +import {renderToStaticMarkup} from 'react-dom/server'; +import {afterEach, describe, expect, it, vi} from 'vitest'; + +const fixtures = vi.hoisted(() => ({ + users: new Map(), + channels: new Map(), + roles: new Map(), + emojis: new Map(), +})); + +vi.mock('@lingui/core/macro', () => { + const descriptor = (value: unknown): unknown => (typeof value === 'string' ? {message: value} : value); + return {msg: descriptor, t: descriptor, plural: () => '', select: () => '', selectOrdinal: () => ''}; +}); +vi.mock('@app/features/app/config/Config', () => ({ + default: { + PUBLIC_BUILD_VERSION: 'test', + PUBLIC_RELEASE_CHANNEL: 'canary', + PUBLIC_BOOTSTRAP_API_ENDPOINT: 'https://example.invalid', + PUBLIC_BOOTSTRAP_API_PUBLIC_ENDPOINT: 'https://example.invalid', + }, +})); +vi.mock('@app/features/user/state/Users', () => ({ + default: {getUser: (id: string) => fixtures.users.get(id)}, +})); +vi.mock('@app/features/channel/state/Channels', () => ({ + default: {getChannel: (id: string) => fixtures.channels.get(id)}, +})); +vi.mock('@app/features/guild/state/Guilds', () => ({ + default: {getGuildRole: (_guildId: string, roleId: string) => fixtures.roles.get(roleId)}, +})); +vi.mock('@app/features/emoji/state/Emoji', () => ({ + default: {getEmojiById: (id: string) => fixtures.emojis.get(id)}, +})); +vi.mock('@app/features/user/utils/AvatarUtils', () => ({ + getEmojiURL: ({id}: {id: string}) => `https://media.example.invalid/emojis/${id}.webp`, +})); +vi.mock('@app/features/user/utils/DateFormatting', () => ({ + getFormattedDateTime: (timestamp: number) => new Date(timestamp).toISOString(), +})); +vi.mock('@app/features/permissions/utils/PermissionUtils', () => ({ + formatPermissionLabel: (_i18n: unknown, permission: bigint) => `Permission ${permission}`, +})); +vi.mock('@app/features/guild/components/modals/guild_tabs/GuildAuditLogTabComponents', () => ({ + ClickableUser: ({user, 'data-flx': dataFlx}: {user: {id: string; displayName: string}; 'data-flx'?: string}) => ( + + {user.displayName} + + ), + CopyIdInline: ({ + id, + children, + 'data-flx': dataFlx, + }: { + id: string; + children?: React.ReactNode; + 'data-flx'?: string; + }) => ( + + {children} + + ), + InlineCode: ({ + children, + title, + 'data-flx': dataFlx, + }: { + children?: React.ReactNode; + title?: string; + 'data-flx'?: string; + }) => ( + + {children} + + ), + ColorDot: ({color, 'data-flx': dataFlx}: {color: string; 'data-flx'?: string}) => ( + + ), +})); + +const GUILD_ID = '1400000000000000000'; +const ACTOR_ID = '1400000000000000001'; +const CHANNEL_ID = '1400000000000000002'; +const ROLE_ID = '1400000000000000003'; +const EMOJI_ID = '1400000000000000004'; +const SENTENCE_DATA_FLX_PATTERN = /data-flx="(guild\.guild-tabs\.guild-audit-log-sentence\.[^"]+)"/g; + +const i18n = setupI18n({locale: 'en', messages: {en: {}}}); + +function descriptor(id: string, message: string): MessageDescriptor { + return {id, message}; +} + +function renderSentence(sentence: AuditLogSentence): string { + return renderToStaticMarkup( + + + , + ); +} + +function visibleText(html: string): string { + return html.replace(/<[^>]+>/g, ''); +} + +function renderText(sentence: AuditLogSentence): string { + return visibleText(renderSentence(sentence)); +} + +function channelSentence(channel: AuditLogSentence['values'][string]): AuditLogSentence { + return {descriptor: descriptor('test.channel', 'Deleted {channel}.'), values: {channel}}; +} + +function roleSentence(role: AuditLogSentence['values'][string]): AuditLogSentence { + return {descriptor: descriptor('test.role', 'Deleted the role {role}.'), values: {role}}; +} + +afterEach(() => { + fixtures.users.clear(); + fixtures.channels.clear(); + fixtures.roles.clear(); + fixtures.emojis.clear(); +}); + +describe('GuildAuditLogSentence', () => { + it('renders a user chip and a channel chip inside one message', () => { + fixtures.users.set(ACTOR_ID, {id: ACTOR_ID, displayName: 'Hampus'}); + fixtures.channels.set(CHANNEL_ID, {id: CHANNEL_ID, name: 'general', type: ChannelTypes.GUILD_TEXT}); + const html = renderSentence({ + descriptor: descriptor('test.message-delete', '{actor} deleted a message in {channel}.'), + values: { + actor: {kind: 'user', id: ACTOR_ID}, + channel: {kind: 'channel', id: CHANNEL_ID, recordedName: null, fallback: 'channel'}, + }, + }); + expect(visibleText(html)).toBe('Hampus deleted a message in #general.'); + const userChipIndex = html.indexOf(`data-user-id="${ACTOR_ID}"`); + const channelChipIndex = html.indexOf(`data-copy-id="${CHANNEL_ID}"`); + expect(userChipIndex).toBeGreaterThan(-1); + expect(channelChipIndex).toBeGreaterThan(userChipIndex); + }); + + it.each([ + [1, 'Hampus deleted 1 message in #general.'], + [5, 'Hampus deleted 5 messages in #general.'], + ])('passes the number %i through to the plural', (count, expected) => { + fixtures.users.set(ACTOR_ID, {id: ACTOR_ID, displayName: 'Hampus'}); + fixtures.channels.set(CHANNEL_ID, {id: CHANNEL_ID, name: 'general', type: ChannelTypes.GUILD_TEXT}); + expect( + renderText({ + descriptor: descriptor( + 'test.message-bulk-delete', + '{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}.', + ), + values: { + actor: {kind: 'user', id: ACTOR_ID}, + count, + channel: {kind: 'channel', id: CHANNEL_ID, recordedName: null, fallback: 'channel'}, + }, + }), + ).toBe(expected); + }); + + it('shows the unknown user label when the user is not loaded', () => { + const html = renderSentence({ + descriptor: descriptor('test.kick', '{actor} kicked {target}.'), + values: {actor: {kind: 'user', id: ACTOR_ID}, target: {kind: 'user', id: ''}}, + }); + expect(visibleText(html)).toBe('Unknown user kicked Unknown user.'); + expect(html).not.toContain('data-user-id'); + }); + + it('shows the System label for the system actor', () => { + fixtures.users.set(ACTOR_ID, {id: ACTOR_ID, displayName: 'Hampus'}); + expect( + renderText({ + descriptor: descriptor('test.system-role', '{actor} gave {target} the role {role}.'), + values: { + actor: {kind: 'system'}, + target: {kind: 'user', id: ACTOR_ID}, + role: {kind: 'role', id: ROLE_ID, recordedName: 'Mods'}, + }, + }), + ).toBe('System gave Hampus the role Mods.'); + }); + + describe('channel names', () => { + it.each([ + [ChannelTypes.GUILD_TEXT, 'Deleted #general.'], + [ChannelTypes.GUILD_LINK, 'Deleted #general.'], + [ChannelTypes.GUILD_VOICE, 'Deleted general.'], + [ChannelTypes.GUILD_CATEGORY, 'Deleted general.'], + ])('prefixes # only for live text and link channels (type %i)', (type, expected) => { + fixtures.channels.set(CHANNEL_ID, {id: CHANNEL_ID, name: 'general', type}); + expect( + renderText(channelSentence({kind: 'channel', id: CHANNEL_ID, recordedName: null, fallback: 'channel'})), + ).toBe(expected); + }); + + it('prefers the recorded name over the live name', () => { + fixtures.channels.set(CHANNEL_ID, {id: CHANNEL_ID, name: 'new-name', type: ChannelTypes.GUILD_TEXT}); + expect( + renderText(channelSentence({kind: 'channel', id: CHANNEL_ID, recordedName: 'old-name', fallback: 'channel'})), + ).toBe('Deleted #old-name.'); + }); + + it('shows the recorded name without a prefix when the channel is gone', () => { + expect( + renderText(channelSentence({kind: 'channel', id: CHANNEL_ID, recordedName: 'general', fallback: 'channel'})), + ).toBe('Deleted general.'); + }); + + it('falls back to #deleted-channel for a missing channel', () => { + const html = renderSentence( + channelSentence({kind: 'channel', id: CHANNEL_ID, recordedName: null, fallback: 'channel'}), + ); + expect(visibleText(html)).toBe('Deleted #deleted-channel.'); + expect(html).toContain(`data-copy-id="${CHANNEL_ID}"`); + }); + + it('falls back to deleted-category for a missing category', () => { + expect( + renderText(channelSentence({kind: 'channel', id: CHANNEL_ID, recordedName: null, fallback: 'category'})), + ).toBe('Deleted deleted-category.'); + }); + }); + + describe('role names', () => { + it('shows @everyone when the role id equals the community id', () => { + expect(renderText(roleSentence({kind: 'role', id: GUILD_ID, recordedName: null}))).toBe( + 'Deleted the role @everyone.', + ); + }); + + it('prefers the recorded name over the live name', () => { + fixtures.roles.set(ROLE_ID, {id: ROLE_ID, name: 'Moderators'}); + expect(renderText(roleSentence({kind: 'role', id: ROLE_ID, recordedName: 'Mods'}))).toBe( + 'Deleted the role Mods.', + ); + }); + + it('uses the live name when no name was recorded', () => { + fixtures.roles.set(ROLE_ID, {id: ROLE_ID, name: 'Moderators'}); + expect(renderText(roleSentence({kind: 'role', id: ROLE_ID, recordedName: null}))).toBe( + 'Deleted the role Moderators.', + ); + }); + + it('falls back to deleted-role for a missing role', () => { + const html = renderSentence(roleSentence({kind: 'role', id: ROLE_ID, recordedName: null})); + expect(visibleText(html)).toBe('Deleted the role deleted-role.'); + expect(html).toContain(`data-copy-id="${ROLE_ID}"`); + }); + }); + + describe('text', () => { + const textSentence = (value: string): AuditLogSentence => ({ + descriptor: descriptor('test.topic', 'Set the topic to {text}.'), + values: {text: {kind: 'text', value}}, + }); + + it('keeps text of 200 code points whole without a tooltip', () => { + const value = '😀'.repeat(200); + const html = renderSentence(textSentence(value)); + expect(visibleText(html)).toBe(`Set the topic to ${value}.`); + expect(html).not.toContain('title='); + }); + + it('truncates text past 200 code points and puts the full text in the tooltip', () => { + const value = '😀'.repeat(201); + const html = renderSentence(textSentence(value)); + expect(visibleText(html)).toBe(`Set the topic to ${'😀'.repeat(200)}….`); + expect(html).toContain(`title="${value}"`); + }); + }); + + describe('permissions', () => { + const permissionSentence = (flags: Array): AuditLogSentence => ({ + descriptor: descriptor('test.granted', 'Granted {permissions}.'), + values: {permissions: {kind: 'permissions', flags}}, + }); + + it('lists up to 8 permissions by name', () => { + expect(renderText(permissionSentence([1n, 2n, 4n, 8n, 16n, 32n, 64n, 128n]))).toBe( + 'Granted Permission 1, Permission 2, Permission 4, Permission 8, Permission 16, Permission 32, Permission 64, and Permission 128.', + ); + }); + + it('shows 7 names and a count when there are more than 8 permissions', () => { + expect(renderText(permissionSentence([1n, 2n, 4n, 8n, 16n, 32n, 64n, 128n, 256n, 512n]))).toBe( + 'Granted Permission 1, Permission 2, Permission 4, Permission 8, Permission 16, Permission 32, Permission 64, and 3 more permissions.', + ); + }); + }); + + it.each([ + [5400, 'Set slowmode to 90 minutes.'], + [259200, 'Set slowmode to 3 days.'], + [1, 'Set slowmode to 1 second.'], + ])('formats a duration of %i seconds in its largest whole unit', (seconds, expected) => { + expect( + renderText({ + descriptor: descriptor('test.slowmode', 'Set slowmode to {duration}.'), + values: {duration: {kind: 'duration', seconds}}, + }), + ).toBe(expected); + }); + + it('formats dates, labels and names', () => { + const timestamp = Date.parse('2026-09-01T12:00:00.000Z'); + expect( + renderText({ + descriptor: descriptor('test.mixed', '{name} changed {oldAlignment} on {date}.'), + values: { + name: {kind: 'name', value: 'Captain Hook'}, + oldAlignment: {kind: 'label', descriptor: descriptor('test.centered', 'Centered')}, + date: {kind: 'date', timestamp}, + }, + }), + ).toBe('Captain Hook changed Centered on 2026-09-01T12:00:00.000Z.'); + }); + + it('formats a color as uppercase hex with a color dot', () => { + const html = renderSentence({ + descriptor: descriptor('test.color', 'Set the role color to {color}.'), + values: {color: {kind: 'color', value: 0xff8800}}, + }); + expect(visibleText(html)).toBe('Set the role color to #FF8800.'); + expect(html).toContain('data-color="#FF8800"'); + }); + + describe('emoji', () => { + const emojiSentence = (id: string | null): AuditLogSentence => ({ + descriptor: descriptor('test.emoji', 'Added the emoji {emoji}.'), + values: {emoji: {kind: 'emoji', id, name: 'blobcat'}}, + }); + + it('shows the emoji image when the emoji is loaded', () => { + fixtures.emojis.set(EMOJI_ID, {id: EMOJI_ID, name: 'blobcat', animated: false}); + const html = renderSentence(emojiSentence(EMOJI_ID)); + expect(visibleText(html)).toBe('Added the emoji :blobcat:.'); + expect(html).toContain(`src="https://media.example.invalid/emojis/${EMOJI_ID}.webp"`); + }); + + it.each([ + ['without an id', null], + ['that is not loaded', EMOJI_ID], + ])('shows only the name for an emoji %s', (_label, id) => { + const html = renderSentence(emojiSentence(id)); + expect(visibleText(html)).toBe('Added the emoji :blobcat:.'); + expect(html).not.toContain(' { + fixtures.users.set(ACTOR_ID, {id: ACTOR_ID, displayName: 'Hampus'}); + fixtures.channels.set(CHANNEL_ID, {id: CHANNEL_ID, name: 'general', type: ChannelTypes.GUILD_TEXT}); + fixtures.emojis.set(EMOJI_ID, {id: EMOJI_ID, name: 'blobcat', animated: false}); + const html = renderSentence({ + descriptor: descriptor( + 'test.chips', + '{user} {unknownUser} {system} {channel} {role} {name} {text} {longText} {loadedEmoji} {plainEmoji} {color}', + ), + values: { + user: {kind: 'user', id: ACTOR_ID}, + unknownUser: {kind: 'user', id: ''}, + system: {kind: 'system'}, + channel: {kind: 'channel', id: CHANNEL_ID, recordedName: null, fallback: 'channel'}, + role: {kind: 'role', id: ROLE_ID, recordedName: 'Mods'}, + name: {kind: 'name', value: 'Captain Hook'}, + text: {kind: 'text', value: 'short'}, + longText: {kind: 'text', value: 'x'.repeat(201)}, + loadedEmoji: {kind: 'emoji', id: EMOJI_ID, name: 'blobcat'}, + plainEmoji: {kind: 'emoji', id: null, name: 'wave'}, + color: {kind: 'color', value: 0x00ff00}, + }, + }); + const dataFlxValues = Array.from(html.matchAll(SENTENCE_DATA_FLX_PATTERN), (match) => match[1]).sort(); + expect(dataFlxValues).toEqual( + [ + 'guild.guild-tabs.guild-audit-log-sentence.render-user.clickable-user', + 'guild.guild-tabs.guild-audit-log-sentence.render-user.strong', + 'guild.guild-tabs.guild-audit-log-sentence.render-system.strong', + 'guild.guild-tabs.guild-audit-log-sentence.render-channel.copy-id-inline', + 'guild.guild-tabs.guild-audit-log-sentence.render-channel.strong', + 'guild.guild-tabs.guild-audit-log-sentence.render-role.copy-id-inline', + 'guild.guild-tabs.guild-audit-log-sentence.render-role.strong', + 'guild.guild-tabs.guild-audit-log-sentence.render-name.strong', + 'guild.guild-tabs.guild-audit-log-sentence.render-text.inline-code', + 'guild.guild-tabs.guild-audit-log-sentence.render-text.inline-code--2', + 'guild.guild-tabs.guild-audit-log-sentence.render-emoji.inline-emoji', + 'guild.guild-tabs.guild-audit-log-sentence.render-emoji.inline-emoji-image', + 'guild.guild-tabs.guild-audit-log-sentence.render-emoji.strong--2', + 'guild.guild-tabs.guild-audit-log-sentence.render-emoji.strong', + 'guild.guild-tabs.guild-audit-log-sentence.render-color.color-value', + 'guild.guild-tabs.guild-audit-log-sentence.render-color.strong', + 'guild.guild-tabs.guild-audit-log-sentence.render-color.color-dot', + ].sort(), + ); + }); +}); diff --git a/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx b/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx new file mode 100644 index 000000000..1d2099d0e --- /dev/null +++ b/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx @@ -0,0 +1,247 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {EVERYONE_MENTION} from '@app/features/app/config/I18nDisplayConstants'; +import Channels from '@app/features/channel/state/Channels'; +import Emoji from '@app/features/emoji/state/Emoji'; +import styles from '@app/features/guild/components/modals/guild_tabs/GuildAuditLogTab.module.css'; +import { + ClickableUser, + ColorDot, + CopyIdInline, + InlineCode, +} from '@app/features/guild/components/modals/guild_tabs/GuildAuditLogTabComponents'; +import Guilds from '@app/features/guild/state/Guilds'; +import type { + AuditLogPlaceholder, + AuditLogSentence, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogPresentationTypes'; +import { + DELETED_CATEGORY_LABEL, + DELETED_CHANNEL_LABEL, + DELETED_ROLE_LABEL, + MORE_PERMISSIONS_DESCRIPTOR, + SYSTEM_ACTOR_LABEL, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages'; +import {largestDurationUnit} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogValues'; +import { + DAYS_DURATION_PLURAL_DESCRIPTOR, + HOURS_DURATION_PLURAL_DESCRIPTOR, + MINUTES_DURATION_PLURAL_DESCRIPTOR, + SECONDS_DURATION_PLURAL_DESCRIPTOR, +} from '@app/features/i18n/utils/CommonMessageDescriptors'; +import {getCachedNumberFormat} from '@app/features/i18n/utils/IntlCache'; +import {formatPermissionLabel} from '@app/features/permissions/utils/PermissionUtils'; +import Users from '@app/features/user/state/Users'; +import {getEmojiURL} from '@app/features/user/utils/AvatarUtils'; +import {getFormattedDateTime} from '@app/features/user/utils/DateFormatting'; +import {ChannelTypes} from '@fluxer/constants/src/ChannelConstants'; +import type {I18n} from '@lingui/core'; +import {msg} from '@lingui/core/macro'; +import {Trans, useLingui} from '@lingui/react'; +import {formatListWithConfig} from '@pkgs/list_utils/src/ListFormatting'; +import {observer} from 'mobx-react-lite'; +import type React from 'react'; + +type ChannelPlaceholder = Extract; +type RolePlaceholder = Extract; +type EmojiPlaceholder = Extract; + +interface GuildAuditLogSentenceProps { + sentence: AuditLogSentence; + guildId: string; +} + +const UNKNOWN_USER_DESCRIPTOR = msg({ + message: 'Unknown user', + comment: + 'Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists.', +}); + +const TEXT_MAX_CODE_POINTS = 200; +const TEXT_TRUNCATION_SUFFIX = '…'; +const PERMISSION_LIST_LIMIT = 8; +const PERMISSION_LIST_SHOWN = 7; +const PLURAL_COUNT_VALUE = 'count'; + +function formatDuration(i18n: I18n, seconds: number): string { + const {unit, value} = largestDurationUnit(seconds); + switch (unit) { + case 'days': + return i18n._(DAYS_DURATION_PLURAL_DESCRIPTOR, {days: value}); + case 'hours': + return i18n._(HOURS_DURATION_PLURAL_DESCRIPTOR, {hours: value}); + case 'minutes': + return i18n._(MINUTES_DURATION_PLURAL_DESCRIPTOR, {minutes: value}); + case 'seconds': + return i18n._(SECONDS_DURATION_PLURAL_DESCRIPTOR, {seconds: value}); + } +} + +function formatPermissions(i18n: I18n, flags: ReadonlyArray): string { + const shownFlags = flags.length > PERMISSION_LIST_LIMIT ? flags.slice(0, PERMISSION_LIST_SHOWN) : flags; + const items = shownFlags.map((flag) => formatPermissionLabel(i18n, flag)); + if (shownFlags.length < flags.length) { + items.push(i18n._(MORE_PERMISSIONS_DESCRIPTOR, {count: flags.length - shownFlags.length})); + } + return formatListWithConfig(items, {locale: i18n.locale, style: 'long', type: 'conjunction'}); +} + +function formatColor(value: number): string { + return `#${value.toString(16).padStart(6, '0').toUpperCase()}`; +} + +function getChannelLabel(placeholder: ChannelPlaceholder, i18n: I18n): string { + const channel = Channels.getChannel(placeholder.id); + const name = placeholder.recordedName ?? channel?.name; + if (name == null) { + return placeholder.fallback === 'category' ? i18n._(DELETED_CATEGORY_LABEL) : `#${i18n._(DELETED_CHANNEL_LABEL)}`; + } + const hasHashPrefix = channel?.type === ChannelTypes.GUILD_TEXT || channel?.type === ChannelTypes.GUILD_LINK; + return hasHashPrefix ? `#${name}` : name; +} + +function getRoleLabel(placeholder: RolePlaceholder, guildId: string, i18n: I18n): string { + if (placeholder.id === guildId) return EVERYONE_MENTION; + return placeholder.recordedName ?? Guilds.getGuildRole(guildId, placeholder.id)?.name ?? i18n._(DELETED_ROLE_LABEL); +} + +function renderUser(id: string, guildId: string, i18n: I18n): React.ReactNode { + const user = Users.getUser(id); + if (user) { + return ( + + ); + } + return ( + + {i18n._(UNKNOWN_USER_DESCRIPTOR)} + + ); +} + +function renderSystem(i18n: I18n): React.ReactNode { + return ( + + {i18n._(SYSTEM_ACTOR_LABEL)} + + ); +} + +function renderChannel(placeholder: ChannelPlaceholder, i18n: I18n): React.ReactNode { + return ( + + + {getChannelLabel(placeholder, i18n)} + + + ); +} + +function renderRole(placeholder: RolePlaceholder, guildId: string, i18n: I18n): React.ReactNode { + return ( + + + {getRoleLabel(placeholder, guildId, i18n)} + + + ); +} + +function renderName(value: string): React.ReactNode { + return {value}; +} + +function renderText(value: string): React.ReactNode { + const codePoints = Array.from(value); + if (codePoints.length <= TEXT_MAX_CODE_POINTS) { + return ( + {value} + ); + } + const truncated = `${codePoints.slice(0, TEXT_MAX_CODE_POINTS).join('')}${TEXT_TRUNCATION_SUFFIX}`; + return ( + + {truncated} + + ); +} + +function renderEmoji({id, name}: EmojiPlaceholder): React.ReactNode { + const label = `:${name}:`; + const emoji = id === null ? undefined : Emoji.getEmojiById(id); + if (id === null || emoji === undefined) { + return {label}; + } + return ( + + + {label} + + ); +} + +function renderColor(value: number): React.ReactNode { + const hex = formatColor(value); + return ( + + {hex} + + + ); +} + +function renderPlaceholder(placeholder: AuditLogPlaceholder, guildId: string, i18n: I18n): React.ReactNode { + switch (placeholder.kind) { + case 'user': + return renderUser(placeholder.id, guildId, i18n); + case 'system': + return renderSystem(i18n); + case 'channel': + return renderChannel(placeholder, i18n); + case 'role': + return renderRole(placeholder, guildId, i18n); + case 'name': + return renderName(placeholder.value); + case 'text': + return renderText(placeholder.value); + case 'emoji': + return renderEmoji(placeholder); + case 'date': + return getFormattedDateTime(placeholder.timestamp); + case 'duration': + return formatDuration(i18n, placeholder.seconds); + case 'permissions': + return formatPermissions(i18n, placeholder.flags); + case 'color': + return renderColor(placeholder.value); + case 'label': + return i18n._(placeholder.descriptor); + } +} + +export const GuildAuditLogSentence: React.FC = observer(({sentence, guildId}) => { + const {i18n} = useLingui(); + const values: Record = {}; + for (const [name, value] of Object.entries(sentence.values)) { + if (typeof value !== 'number') { + values[name] = renderPlaceholder(value, guildId, i18n); + continue; + } + values[name] = name === PLURAL_COUNT_VALUE ? value : getCachedNumberFormat(i18n.locale).format(value); + } + return ; +}); diff --git a/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.module.css b/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.module.css index f7a830d4c..d8f54b469 100644 --- a/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.module.css +++ b/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.module.css @@ -382,33 +382,33 @@ color: var(--status-danger); } +.changeBulletNeutral { + background: color-mix(in srgb, var(--text-primary-muted) 12%, var(--background-modifier-hover)); + border-color: color-mix(in srgb, var(--text-primary-muted) 40%, var(--background-modifier-accent)); + color: var(--text-primary-muted); +} + .inlineCode { font-family: var(--font-mono); } -.userHook { - font-weight: 600; - color: var(--text-primary); +.inlineEmoji { + display: inline-flex; + align-items: center; + gap: 0.25rem; + vertical-align: bottom; } -.userName { - overflow: hidden; - text-overflow: ellipsis; +.inlineEmojiImage { + width: 1.25rem; + height: 1.25rem; + object-fit: contain; +} + +.colorValue { white-space: nowrap; } -.targetHook { - font-weight: 600; - color: var(--text-primary); -} - -.discrim { - font-size: 0.75rem; - line-height: 1rem; - color: color-mix(in srgb, currentcolor 60%, transparent); - margin-left: 0.125rem; -} - .colorHook { display: inline-block; width: 0.625rem; diff --git a/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.test.tsx b/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.test.tsx new file mode 100644 index 000000000..155739f6e --- /dev/null +++ b/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.test.tsx @@ -0,0 +1,269 @@ +// @vitest-environment happy-dom +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {AppI18nProvider} from '@app/features/i18n/components/AppI18nProvider'; +import {installVoiceMenuTestBootstrap} from '@app/features/ui/action_menu/items/__fixtures__/VoiceMenuTestBootstrap'; +import {AuditLogActionType} from '@fluxer/constants/src/AuditLogActionType'; +import {setupI18n} from '@lingui/core'; +import type React from 'react'; +import {act} from 'react'; +import {createRoot, type Root} from 'react-dom/client'; +import {afterEach, beforeEach, describe, expect, it, vi} from 'vitest'; + +const GUILD_ID = '1400000000000000000'; +const ACTOR_ID = '1400000000000000001'; +const ENTRY_ID = '1400000000000000002'; + +const fixtures = vi.hoisted(() => ({ + users: new Map(), + entries: [] as Array, +})); + +vi.mock('@app/features/platform/utils/AppLogger', () => ({ + Logger: class { + debug = vi.fn(); + info = vi.fn(); + warn = vi.fn(); + error = vi.fn(); + }, +})); +vi.mock('@app/features/platform/transport/RestTransport', () => ({ + http: {get: vi.fn(), post: vi.fn()}, +})); +vi.mock('@app/features/app/config/Config', () => ({ + default: { + PUBLIC_BUILD_VERSION: 'test', + PUBLIC_RELEASE_CHANNEL: 'canary', + PUBLIC_BOOTSTRAP_API_ENDPOINT: 'https://example.invalid', + PUBLIC_BOOTSTRAP_API_PUBLIC_ENDPOINT: 'https://example.invalid', + }, +})); +vi.mock('@lingui/core/macro', () => { + const descriptor = (value: unknown): unknown => + typeof value === 'string' + ? {id: value, message: value} + : {...(value as object), id: (value as {message: string}).message}; + return {msg: descriptor, t: descriptor, plural: () => '', select: () => '', selectOrdinal: () => ''}; +}); +vi.mock('@lingui/react/macro', () => ({ + Trans: ({children}: {children?: React.ReactNode}) => <>{children}, + Plural: ({value}: {value: number}) => <>{value}, + useLingui: () => ({i18n}), +})); +vi.mock('@app/features/guild/commands/GuildCommands', () => ({ + fetchGuildAuditLogs: vi.fn(async () => ({ + audit_log_entries: fixtures.entries, + users: [], + webhooks: [], + })), +})); +vi.mock('@app/features/user/state/Users', () => ({ + default: {getUser: (id: string) => fixtures.users.get(id), cacheUsers: vi.fn()}, +})); +vi.mock('@app/features/member/state/GuildMembers', () => ({ + default: {getMembers: () => [], ensureMembersLoaded: vi.fn(async () => undefined)}, +})); +vi.mock('@app/features/channel/state/Channels', () => ({default: {getChannel: () => undefined}})); +vi.mock('@app/features/guild/state/Guilds', () => ({ + default: { + getGuildRole: () => undefined, + getGuild: () => undefined, + getRoles: () => [], + getGuildRoles: () => [], + getGuildChannels: () => [], + }, +})); +vi.mock('@app/features/emoji/state/Emoji', () => ({default: {getEmojiById: () => undefined}})); +vi.mock('@app/features/emoji/state/EmojiSticker', () => ({default: {getStickerById: () => null}})); +vi.mock('@app/features/messaging/utils/MessagingUrlUtils', () => ({ + setUrlQueryParams: (path: string) => path, + setPathQueryParams: (path: string) => path, + mediaUrl: (path: string) => `https://media.example.invalid${path}`, + cdnUrl: (path: string) => `https://cdn.example.invalid${path}`, + webhookUrl: (id: string, token: string) => `https://example.invalid/webhooks/${id}/${token}`, + marketingUrl: (path: string) => `https://example.invalid${path}`, + adminUrl: (path: string) => `https://example.invalid${path}`, + webAppUrl: (path: string) => `https://example.invalid${path}`, +})); +vi.mock('@app/features/user/utils/AvatarUtils', () => ({ + getEmojiURL: ({id}: {id: string}) => `https://media.example.invalid/emojis/${id}.webp`, +})); +vi.mock('@app/features/user/utils/DateFormatting', () => ({ + getFormattedDateTime: (timestamp: number) => new Date(timestamp).toISOString(), +})); +vi.mock('@app/features/permissions/utils/PermissionUtils', () => ({ + formatPermissionLabel: (_i18n: unknown, permission: bigint) => `Permission ${permission}`, +})); +vi.mock('@app/features/guild/components/modals/guild_tabs/GuildAuditLogTabComponents', () => ({ + ClickableUser: ({user}: {user: {id: string; displayName: string}}) => ( + {user.displayName} + ), + CopyIdInline: ({children}: {children?: React.ReactNode}) => ( + {children} + ), + InlineCode: ({children}: {children?: React.ReactNode}) => ( + {children} + ), + ColorDot: ({color}: {color: string}) => ( + + ), +})); +vi.mock('@app/features/ui/components/form/FormCombobox', () => ({ + Combobox: ({options}: {options: ReadonlyArray<{value: string; label: string}>}) => ( +
+ {options.map((option) => ( + + {option.label} + + ))} +
+ ), +})); +vi.mock('@app/features/ui/components/Avatar', () => ({ + Avatar: ({user}: {user: {id: string}}) => ( + + ), +})); +vi.mock('@app/features/ui/components/MockAvatar', () => ({ + MockAvatar: ({userTag}: {userTag?: string}) => ( + + ), +})); +vi.mock('@app/features/ui/components/Spinner', () => ({ + Spinner: () => , +})); +vi.mock('@app/features/ui/button/Button', () => ({ + Button: ({children}: {children?: React.ReactNode}) => ( + + ), +})); +vi.mock('@app/features/ui/focus_ring/FocusRing', () => ({ + default: ({children}: {children: React.ReactElement}) => children, +})); +vi.mock('@app/features/app/components/dialogs/shared/EmptySlate', () => ({ + EmptySlate: ({title, description}: {title: React.ReactNode; description: React.ReactNode}) => ( +
+ {title} + {description} +
+ ), +})); + +const i18n = setupI18n({locale: 'en', messages: {en: {}}}); + +installVoiceMenuTestBootstrap(); + +const {ExperimentAssignments} = await import('@app/features/experiment/state/ExperimentAssignments'); +const {INERT_EXPERIMENT_ASSIGNMENTS_RESPONSE} = await import('@fluxer/schema/src/domains/experiment/ExperimentSchemas'); +const {runInAction} = await import('mobx'); +const GuildActivityLogTab = (await import('@app/features/guild/components/modals/guild_tabs/GuildAuditLogTab')).default; + +(globalThis as {IS_REACT_ACT_ENVIRONMENT?: boolean}).IS_REACT_ACT_ENVIRONMENT = true; + +const LEGACY_ONLY_FILTER_LABEL = 'Members pruned'; +const LEGACY_SUMMARY_TEXT = 'updated the community settings.'; +const NEW_SUMMARY_TEXT = 'renamed the community from Old name to New name.'; + +function setPresentationEnabled(enabled: boolean): void { + runInAction(() => { + ExperimentAssignments.response = { + poll_interval_seconds: 300, + poll_jitter_percent: 15, + assignments: { + guild_activity_log_presentation: { + enabled: true, + config_version: 1, + user_targeted: enabled, + source: enabled ? 'user_rule' : null, + }, + }, + }; + }); +} + +describe('GuildAuditLogTab presentation rollout', () => { + let root: Root | null = null; + let container: HTMLDivElement | null = null; + + beforeEach(() => { + fixtures.users.set(ACTOR_ID, {id: ACTOR_ID, displayName: 'Moderator'}); + fixtures.entries = [ + { + id: ENTRY_ID, + action_type: AuditLogActionType.GUILD_UPDATE, + user_id: ACTOR_ID, + target_id: GUILD_ID, + changes: [{key: 'name', old_value: 'Old name', new_value: 'New name'}], + }, + ]; + container = document.createElement('div'); + document.body.append(container); + root = createRoot(container); + }); + + afterEach(() => { + act(() => { + root?.unmount(); + }); + root = null; + container?.remove(); + container = null; + fixtures.users.clear(); + fixtures.entries = []; + runInAction(() => { + ExperimentAssignments.response = INERT_EXPERIMENT_ASSIGNMENTS_RESPONSE; + }); + }); + + async function render(): Promise { + await act(async () => { + root?.render( + + + , + ); + }); + return container?.textContent ?? ''; + } + + it('renders the old path, including its own filter list, when the flag is off', async () => { + setPresentationEnabled(false); + const text = await render(); + expect(text).toContain(LEGACY_SUMMARY_TEXT); + expect(text).toContain(LEGACY_ONLY_FILTER_LABEL); + }); + + it('renders the old path when no assignment has arrived at all', async () => { + const text = await render(); + expect(text).toContain(LEGACY_SUMMARY_TEXT); + expect(text).toContain(LEGACY_ONLY_FILTER_LABEL); + }); + + it('renders the new path, without the old filter list, when the flag is on', async () => { + setPresentationEnabled(true); + const text = await render(); + expect(text).toContain(NEW_SUMMARY_TEXT); + expect(text).not.toContain(LEGACY_SUMMARY_TEXT); + expect(text).not.toContain(LEGACY_ONLY_FILTER_LABEL); + }); + + it('follows a mid-session assignment change from the old path to the new one', async () => { + setPresentationEnabled(false); + const before = await render(); + expect(before).toContain(LEGACY_SUMMARY_TEXT); + + await act(async () => { + setPresentationEnabled(true); + await Promise.resolve(); + }); + + const after = container?.textContent ?? ''; + expect(after).toContain(NEW_SUMMARY_TEXT); + expect(after).not.toContain(LEGACY_SUMMARY_TEXT); + }); +}); diff --git a/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx b/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx index 80371b746..c22c5faa8 100644 --- a/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx +++ b/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx @@ -5,9 +5,14 @@ import { AUDIT_LOG_ACTIONS, AUDIT_LOG_TARGET_TYPES, type AuditLogTargetType, + getLegacyTranslatedAuditLogActions, getTranslatedAuditLogActions, + LEGACY_AUDIT_LOG_ACTIONS, } from '@app/features/app/config/AuditLogConstants'; +import Emoji from '@app/features/emoji/state/Emoji'; +import EmojiSticker from '@app/features/emoji/state/EmojiSticker'; import * as GuildCommands from '@app/features/guild/commands/GuildCommands'; +import {GuildAuditLogSentence} from '@app/features/guild/components/modals/guild_tabs/GuildAuditLogSentence'; import styles from '@app/features/guild/components/modals/guild_tabs/GuildAuditLogTab.module.css'; import { type AuditLogActionKind, @@ -27,6 +32,13 @@ import { shouldNotRenderChangeDetail, shouldShowFallbackChangeDetail, } from '@app/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils'; +import GuildActivityLogPresentationRollout from '@app/features/guild/state/GuildActivityLogPresentationRollout'; +import {presentAuditLogEntry} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogPresentation'; +import type { + AuditLogPresentationContext, + AuditLogTone, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogPresentationTypes'; +import {BAN_REASON_LABEL} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages'; import { getActionKind, getTargetType, @@ -57,6 +69,7 @@ import { BuildingsIcon, CaretDownIcon, ClipboardTextIcon, + DotIcon, FunnelSimpleIcon, GearIcon, HashIcon, @@ -68,6 +81,7 @@ import { SmileyIcon, StampIcon, TagIcon, + TrashIcon, UserGearIcon, WarningCircleIcon, } from '@phosphor-icons/react'; @@ -107,10 +121,6 @@ const FILTER_BY_ACTION_DESCRIPTOR = msg({ message: 'Filter by action', comment: 'Label of the action-type filter dropdown in the activity log tab.', }); -const NO_REASON_WAS_PROVIDED_DESCRIPTOR = msg({ - message: 'No reason was provided.', - comment: 'Fallback text in an expanded activity log entry when the moderator did not supply a reason.', -}); const UNKNOWN_USER_DESCRIPTOR = msg({ message: 'Unknown user', comment: 'Fallback avatar label in the audit log when the acting user is unavailable.', @@ -129,7 +139,6 @@ const UNABLE_TO_LOAD_ACTIVITY_LOGS_DESCRIPTOR = msg({ }); type IconComponent = React.ComponentType<{size?: number | string; weight?: IconWeight; className?: string}>; -type ChangeTone = 'add' | 'remove' | 'update'; const logger = new Logger('GuildAuditLogTab'); const actionIconMap: Partial> = { @@ -164,8 +173,8 @@ const actionIconMap: Partial> = { [AuditLogActionType.STICKER_CREATE]: StampIcon, [AuditLogActionType.STICKER_UPDATE]: StampIcon, [AuditLogActionType.STICKER_DELETE]: StampIcon, - [AuditLogActionType.MESSAGE_DELETE]: PencilSimpleIcon, - [AuditLogActionType.MESSAGE_BULK_DELETE]: PencilSimpleIcon, + [AuditLogActionType.MESSAGE_DELETE]: TrashIcon, + [AuditLogActionType.MESSAGE_BULK_DELETE]: TrashIcon, [AuditLogActionType.MESSAGE_PIN]: PencilSimpleIcon, [AuditLogActionType.MESSAGE_UNPIN]: PencilSimpleIcon, }; @@ -182,18 +191,28 @@ const targetIconMap: Record = { [AUDIT_LOG_TARGET_TYPES.STICKER]: StampIcon, [AUDIT_LOG_TARGET_TYPES.MESSAGE]: PencilSimpleIcon, }; +const changeToneIconMap: Record = { + add: PlusIcon, + remove: MinusIcon, + neutral: DotIcon, +}; +const changeToneClassMap: Record = { + add: styles.changeBulletAdd, + remove: styles.changeBulletRemove, + neutral: styles.changeBulletNeutral, +}; const getActionIcon = (actionType: AuditLogActionType): IconComponent => { const targetType = getTargetType(actionType); - return targetIconMap[targetType as AuditLogTargetType] ?? actionIconMap[actionType] ?? BuildingsIcon; + return actionIconMap[actionType] ?? targetIconMap[targetType as AuditLogTargetType] ?? BuildingsIcon; }; const getActionOptionIcon = (value: string): IconComponent => { if (!value) return FunnelSimpleIcon; const action = AUDIT_LOG_ACTIONS.find((item) => item.value.toString() === value); if (!action) return FunnelSimpleIcon; - const actionType = Number(value) as AuditLogActionType; - const targetType = getTargetType(actionType); - return targetIconMap[targetType as AuditLogTargetType] ?? getActionIcon(actionType); + return getActionIcon(action.value); }; +const isUserTargetAction = (actionType: AuditLogActionType): boolean => + (getTargetType(actionType) as AuditLogTargetType) === AUDIT_LOG_TARGET_TYPES.USER; const USER_FILTER_AVATAR_SIZE = 28; const getActionSelectIconToneClass = (actionKind: AuditLogActionKind): string => { switch (actionKind) { @@ -207,42 +226,7 @@ const getActionSelectIconToneClass = (actionKind: AuditLogActionKind): string => return styles.actionSelectIconNeutral; } }; -const getChangeTone = (change: {key: string; oldValue: unknown; newValue: unknown}): ChangeTone => { - if (change.key === '$remove') return 'remove'; - if (typeof change.newValue === 'boolean' && typeof change.oldValue === 'boolean') { - return change.newValue ? 'add' : 'remove'; - } - if (change.oldValue != null && change.newValue == null) return 'remove'; - return 'add'; -}; -const getOptionTone = (value: unknown): ChangeTone => { - if (typeof value === 'boolean') return value ? 'add' : 'remove'; - return 'add'; -}; -const getChangeIcon = (tone: ChangeTone): IconComponent => { - switch (tone) { - case 'remove': - return MinusIcon; - default: - return PlusIcon; - } -}; -const maybeUrlDecodeReason = (raw: string): string => { - if (!/%[0-9A-Fa-f]{2}/.test(raw)) return raw; - try { - const decoded = decodeURIComponent(raw); - return decoded === raw ? raw : decoded; - } catch { - return raw; - } -}; const INFINITE_SCROLL_OVERSCAN_PX = 1200; -const getChangeBulletToneClass = (tone: ChangeTone): string => { - if (tone === 'remove') { - return styles.changeBulletRemove; - } - return styles.changeBulletAdd; -}; type UserFilterOption = AuditLogUserOption | ComboboxOption; @@ -251,6 +235,7 @@ const isAuditLogUserOption = (option: UserFilterOption): option is AuditLogUserO const GuildAuditLogTab: React.FC<{guildId: string}> = observer(({guildId}) => { const {i18n} = useLingui(); const [entries, setEntries] = useState>([]); + const [webhookNames, setWebhookNames] = useState>(() => new Map()); const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(null); const [hasSuccessfulEmptyLoad, setHasSuccessfulEmptyLoad] = useState(false); @@ -259,6 +244,15 @@ const GuildAuditLogTab: React.FC<{guildId: string}> = observer(({guildId}) => { const [hasMore, setHasMore] = useState(true); const [expandedEntryId, setExpandedEntryId] = useState(null); const members = GuildMembers.getMembers(guildId); + const presentationContext = useMemo( + () => ({ + guildId, + getWebhookName: (id) => webhookNames.get(id) ?? null, + getEmojiName: (id) => Emoji.getEmojiById(id)?.name ?? null, + getStickerName: (id) => EmojiSticker.getStickerById(id)?.name ?? null, + }), + [guildId, webhookNames], + ); const userOptions = useMemo>( () => [{value: '', label: i18n._(ALL_USERS_DESCRIPTOR)}, ...buildUserOptions(members)], [members, i18n.locale], @@ -372,6 +366,13 @@ const GuildAuditLogTab: React.FC<{guildId: string}> = observer(({guildId}) => { }); const fetchedEntries = response.audit_log_entries; Users.cacheUsers(response.users); + setWebhookNames((current) => { + const merged = reset ? new Map() : new Map(current); + for (const webhook of response.webhooks) { + merged.set(webhook.id, webhook.name); + } + return merged; + }); setEntries((current) => { const updatedEntries = reset ? fetchedEntries : [...current, ...fetchedEntries]; setHasSuccessfulEmptyLoad(reset && updatedEntries.length === 0); @@ -401,7 +402,7 @@ const GuildAuditLogTab: React.FC<{guildId: string}> = observer(({guildId}) => { if (entry.user_id) { userIds.add(entry.user_id); } - if (entry.target_id) { + if (entry.target_id && isUserTargetAction(entry.action_type as AuditLogActionType)) { userIds.add(entry.target_id); } } @@ -484,89 +485,15 @@ const GuildAuditLogTab: React.FC<{guildId: string}> = observer(({guildId}) => { const entryClasses = clsx(styles.auditLog, styles[targetClassKey], styles[actionClassKey]); const ActionIcon = getActionIcon(entry.action_type as AuditLogActionType); const actorUser = entry.user_id ? (Users.getUser(entry.user_id) ?? null) : null; - const targetUser = entry.target_id ? (Users.getUser(entry.target_id) ?? null) : null; - const targetLabel = resolveTargetLabel(entry, i18n); - const channelLabel = resolveChannelLabel(entry, guildId, i18n); - const summaryNode = renderEntrySummary({ - entry, - actorUser, - targetUser, - targetLabel, - channelLabel, - guildId, - i18n, - }); - const suppressDetails = shouldSuppressDetailsForAction(entry.action_type as AuditLogActionType); - const changeShapes = suppressDetails - ? [] - : normalizeChanges(entry.changes) - .map(toChangeShape) - .filter((change) => change.key && !shouldNotRenderChangeDetail(targetType, change.key)); - const rendererTable = getRendererTableForTarget(targetType); - const renderedChangeKeys = new Set( - changeShapes - .filter((change) => rendererTable[change.key]?.(change, {entry, guildId, i18n}) != null) - .map((change) => change.key), + const presentation = presentAuditLogEntry(entry, presentationContext); + const summaryNode = ( + ); - const optionEntries = - suppressDetails || !entry.options - ? [] - : Object.entries(entry.options).filter(([key, value]) => { - if (key === DEFAULT_FOR_STRINGS_KEY) return false; - if (renderedChangeKeys.has(key)) return false; - if ( - key !== 'channel_id' && - key !== 'message_id' && - key !== 'inviter_id' && - (key === 'id' || key.endsWith('_id')) - ) - return false; - const scalar = safeScalarString(value, i18n); - if (scalar && looksLikeSnowflake(scalar)) { - return resolveIdToName(scalar, guildId) != null; - } - return true; - }); - const rawReason = typeof entry.reason === 'string' && entry.reason.trim() ? entry.reason.trim() : ''; - const decodedReason = rawReason ? maybeUrlDecodeReason(rawReason) : ''; - const reasonText = decodedReason || i18n._(NO_REASON_WAS_PROVIDED_DESCRIPTOR); - const changeRows = changeShapes - .map((change, changeIndex) => { - const renderer = rendererTable[change.key]; - const rendered = renderer?.(change, {entry, guildId, i18n}); - if (!rendered && !shouldShowFallbackChangeDetail(change)) { - return null; - } - const tone = getChangeTone(change); - const ChangeIcon = getChangeIcon(tone); - const toneClass = getChangeBulletToneClass(tone); - return ( -
- - - - - {rendered ?? renderFallbackChangeDetail(change, guildId, i18n)} - -
- ); - }) - .filter((row): row is ReactElement => row !== null); - const shouldShowReasonPreview = typeof entry.reason === 'string' && entry.reason.trim().length > 0; - const isExpandable = shouldShowReasonPreview || changeRows.length > 0 || optionEntries.length > 0; + const isExpandable = presentation.expandable; const isExpandedView = isExpandable && expandedEntryId === entryId; const headerClasses = clsx(styles.header, { [styles.headerClickable]: isExpandable, @@ -677,64 +604,61 @@ const GuildAuditLogTab: React.FC<{guildId: string}> = observer(({guildId}) => { )} {isExpandedView && (
- {shouldShowReasonPreview && ( -
+ {presentation.blocks.map((block) => ( +
- Reason + {block.kind === 'ban_reason' ? i18n._(BAN_REASON_LABEL) : Reason} - {reasonText} + {block.text}
- )} - {(changeRows.length > 0 || optionEntries.length > 0) && ( + ))} + {presentation.rows.length > 0 && (
- {changeRows} - {optionEntries.map(([key, value]) => ( -
- {(() => { - const tone = getOptionTone(value); - const ChangeIcon = getChangeIcon(tone); - const toneClass = getChangeBulletToneClass(tone); - return ( - - - - ); - })()} - { + const ChangeIcon = changeToneIconMap[row.tone]; + return ( +
- {renderOptionDetailSentence( - key, - value, - guildId, - entry.action_type as AuditLogActionType, - i18n, - )} - -
- ))} + + + + + + +
+ ); + })}
)}
@@ -789,4 +713,714 @@ const GuildAuditLogTab: React.FC<{guildId: string}> = observer(({guildId}) => { ); }); -export default GuildAuditLogTab; +const NO_REASON_WAS_PROVIDED_DESCRIPTOR = msg({ + message: 'No reason was provided.', + comment: 'Fallback text in an expanded activity log entry when the moderator did not supply a reason.', +}); + +type ChangeTone = 'add' | 'remove' | 'update'; + +const getLegacyActionIcon = (actionType: AuditLogActionType): IconComponent => { + const targetType = getTargetType(actionType); + return targetIconMap[targetType as AuditLogTargetType] ?? actionIconMap[actionType] ?? BuildingsIcon; +}; +const getLegacyActionOptionIcon = (value: string): IconComponent => { + if (!value) return FunnelSimpleIcon; + const action = LEGACY_AUDIT_LOG_ACTIONS.find((item) => item.value.toString() === value); + if (!action) return FunnelSimpleIcon; + const actionType = Number(value) as AuditLogActionType; + const targetType = getTargetType(actionType); + return targetIconMap[targetType as AuditLogTargetType] ?? getLegacyActionIcon(actionType); +}; +const getChangeTone = (change: {key: string; oldValue: unknown; newValue: unknown}): ChangeTone => { + if (change.key === '$remove') return 'remove'; + if (typeof change.newValue === 'boolean' && typeof change.oldValue === 'boolean') { + return change.newValue ? 'add' : 'remove'; + } + if (change.oldValue != null && change.newValue == null) return 'remove'; + return 'add'; +}; +const getOptionTone = (value: unknown): ChangeTone => { + if (typeof value === 'boolean') return value ? 'add' : 'remove'; + return 'add'; +}; +const getChangeIcon = (tone: ChangeTone): IconComponent => { + switch (tone) { + case 'remove': + return MinusIcon; + default: + return PlusIcon; + } +}; +const maybeUrlDecodeReason = (raw: string): string => { + if (!/%[0-9A-Fa-f]{2}/.test(raw)) return raw; + try { + const decoded = decodeURIComponent(raw); + return decoded === raw ? raw : decoded; + } catch { + return raw; + } +}; +const getChangeBulletToneClass = (tone: ChangeTone): string => { + if (tone === 'remove') { + return styles.changeBulletRemove; + } + return styles.changeBulletAdd; +}; +const LegacyGuildAuditLogTab: React.FC<{guildId: string}> = observer(({guildId}) => { + const {i18n} = useLingui(); + const [entries, setEntries] = useState>([]); + const [isLoading, setIsLoading] = useState(false); + const [error, setError] = useState(null); + const [hasSuccessfulEmptyLoad, setHasSuccessfulEmptyLoad] = useState(false); + const [selectedUserId, setSelectedUserId] = useState(''); + const [selectedAction, setSelectedAction] = useState(''); + const [hasMore, setHasMore] = useState(true); + const [expandedEntryId, setExpandedEntryId] = useState(null); + const members = GuildMembers.getMembers(guildId); + const userOptions = useMemo>( + () => [{value: '', label: i18n._(ALL_USERS_DESCRIPTOR)}, ...buildUserOptions(members)], + [members, i18n.locale], + ); + const actionOptions = useMemo>>( + () => [ + {value: '', label: i18n._(ALL_ACTIONS_DESCRIPTOR)}, + ...getLegacyTranslatedAuditLogActions(i18n).map((action) => ({ + value: action.value.toString(), + label: action.label, + })), + ], + [i18n.locale], + ); + const userComboboxRenderers = useMemo(() => { + const renderContent = (option: UserFilterOption) => { + if (!option.value) { + return ( +
+ + {option.label} + +
+ ); + } + return ( +
+ {isAuditLogUserOption(option) && ( +
+ +
+ )} + + {option.label} + +
+ ); + }; + return { + renderOption: renderContent, + renderValue: (option: UserFilterOption | null) => (option ? renderContent(option) : null), + }; + }, [guildId]); + const actionComboboxRenderers = useMemo(() => { + const renderContent = (option: ComboboxOption) => { + const Icon = getLegacyActionOptionIcon(option.value); + const actionKind = option.value ? getActionKind(Number(option.value) as AuditLogActionType) : null; + const actionToneClass = + actionKind != null ? getActionSelectIconToneClass(actionKind) : styles.actionSelectIconNeutral; + return ( +
+ + + + + {option.label} + +
+ ); + }; + return { + renderOption: renderContent, + renderValue: (option: ComboboxOption | null) => (option ? renderContent(option) : null), + }; + }, []); + const loadLogs = useCallback( + async ({reset = false, before}: {reset?: boolean; before?: string | null} = {}) => { + setIsLoading(true); + setError(null); + try { + const actionType = selectedAction ? Number(selectedAction) : undefined; + const response = await GuildCommands.fetchGuildAuditLogs(guildId, { + limit: LOG_PAGE_SIZE, + beforeLogId: reset ? undefined : (before ?? undefined), + userId: selectedUserId || undefined, + actionType: actionType ?? undefined, + }); + const fetchedEntries = response.audit_log_entries; + Users.cacheUsers(response.users); + setEntries((current) => { + const updatedEntries = reset ? fetchedEntries : [...current, ...fetchedEntries]; + setHasSuccessfulEmptyLoad(reset && updatedEntries.length === 0); + return updatedEntries; + }); + setHasMore(fetchedEntries.length === LOG_PAGE_SIZE); + if (reset) setExpandedEntryId(null); + } catch (err) { + logger.error('Failed to load audit logs', err); + setError(i18n._(SOMETHING_WENT_WRONG_WHILE_LOADING_THE_ACTIVITY_LOG_DESCRIPTOR)); + setHasSuccessfulEmptyLoad(false); + } finally { + setIsLoading(false); + } + }, + [guildId, selectedAction, selectedUserId], + ); + useEffect(() => { + loadLogs({reset: true}); + }, [loadLogs]); + useEffect(() => { + if (entries.length === 0) { + return; + } + const userIds = new Set(); + for (const entry of entries) { + if (entry.user_id) { + userIds.add(entry.user_id); + } + if (entry.target_id) { + userIds.add(entry.target_id); + } + } + if (userIds.size > 0) { + GuildMembers.ensureMembersLoaded(guildId, Array.from(userIds)).catch((error) => { + logger.error('Failed to ensure members', error); + }); + } + }, [guildId, entries]); + const shouldShowErrorState = Boolean(error); + const errorDescription = error ?? i18n._(SOMETHING_WENT_WRONG_WHILE_LOADING_THE_ACTIVITY_LOG_DESCRIPTOR); + const shouldShowEmptyState = !shouldShowErrorState && !isLoading && entries.length === 0 && hasSuccessfulEmptyLoad; + const handleLoadMore = useCallback(() => { + if (!hasMore || entries.length === 0 || isLoading) return; + loadLogs({before: entries[entries.length - 1].id}); + }, [entries, hasMore, isLoading, loadLogs]); + const sentinelRef = useRef(null); + useEffect(() => { + const el = sentinelRef.current; + if (!el) return; + if (!hasMore || entries.length === 0 || error != null) return; + const observer = new IntersectionObserver( + (observed) => { + if (observed.some((e) => e.isIntersecting)) { + handleLoadMore(); + } + }, + {rootMargin: `0px 0px ${INFINITE_SCROLL_OVERSCAN_PX}px 0px`, threshold: 0}, + ); + observer.observe(el); + return () => observer.disconnect(); + }, [handleLoadMore, hasMore, entries.length, error]); + const toggleExpanded = (id: string) => setExpandedEntryId((current) => (current === id ? null : id)); + return ( +
+
+

+ {i18n._(ACTIVITY_LOG_DESCRIPTOR)} +

+

+ {i18n._(TRACK_MODERATOR_ACTIONS_ACROSS_THE_COMMUNITY_DESCRIPTOR)} +

+
+
+ setSelectedUserId(value)} + options={userOptions} + placeholder={i18n._(ALL_USERS_DESCRIPTOR)} + renderOption={userComboboxRenderers.renderOption} + renderValue={userComboboxRenderers.renderValue} + label={i18n._(FILTER_BY_USER_DESCRIPTOR)} + data-flx="guild.guild-tabs.guild-audit-log-tab.legacy-guild-audit-log-tab.select" + /> + setSelectedAction(value)} + options={actionOptions} + placeholder={i18n._(ALL_ACTIONS_DESCRIPTOR)} + label={i18n._(FILTER_BY_ACTION_DESCRIPTOR)} + renderOption={actionComboboxRenderers.renderOption} + renderValue={actionComboboxRenderers.renderValue} + data-flx="guild.guild-tabs.guild-audit-log-tab.legacy-guild-audit-log-tab.select--2" + /> +
+
+ {isLoading && entries.length === 0 && ( +
+ +
+ )} + {entries.length > 0 && !shouldShowErrorState && ( +
+ {entries.map((entry) => { + const entryId = entry.id; + const targetType = getTargetType(entry.action_type as AuditLogActionType); + const actionKind = getActionKind(entry.action_type as AuditLogActionType); + const targetClassKey = `target_${targetType}` as keyof typeof styles; + const actionClassKey = `type_${actionKind}` as keyof typeof styles; + const entryClasses = clsx(styles.auditLog, styles[targetClassKey], styles[actionClassKey]); + const ActionIcon = getLegacyActionIcon(entry.action_type as AuditLogActionType); + const actorUser = entry.user_id ? (Users.getUser(entry.user_id) ?? null) : null; + const targetUser = entry.target_id ? (Users.getUser(entry.target_id) ?? null) : null; + const targetLabel = resolveTargetLabel(entry, i18n); + const channelLabel = resolveChannelLabel(entry, guildId, i18n); + const summaryNode = renderEntrySummary({ + entry, + actorUser, + targetUser, + targetLabel, + channelLabel, + guildId, + i18n, + }); + const suppressDetails = shouldSuppressDetailsForAction(entry.action_type as AuditLogActionType); + const changeShapes = suppressDetails + ? [] + : normalizeChanges(entry.changes) + .map(toChangeShape) + .filter((change) => change.key && !shouldNotRenderChangeDetail(targetType, change.key)); + const rendererTable = getRendererTableForTarget(targetType); + const renderedChangeKeys = new Set( + changeShapes + .filter((change) => rendererTable[change.key]?.(change, {entry, guildId, i18n}) != null) + .map((change) => change.key), + ); + const optionEntries = + suppressDetails || !entry.options + ? [] + : Object.entries(entry.options).filter(([key, value]) => { + if (key === DEFAULT_FOR_STRINGS_KEY) return false; + if (renderedChangeKeys.has(key)) return false; + if ( + key !== 'channel_id' && + key !== 'message_id' && + key !== 'inviter_id' && + (key === 'id' || key.endsWith('_id')) + ) + return false; + const scalar = safeScalarString(value, i18n); + if (scalar && looksLikeSnowflake(scalar)) { + return resolveIdToName(scalar, guildId) != null; + } + return true; + }); + const rawReason = typeof entry.reason === 'string' && entry.reason.trim() ? entry.reason.trim() : ''; + const decodedReason = rawReason ? maybeUrlDecodeReason(rawReason) : ''; + const reasonText = decodedReason || i18n._(NO_REASON_WAS_PROVIDED_DESCRIPTOR); + const changeRows = changeShapes + .map((change, changeIndex) => { + const renderer = rendererTable[change.key]; + const rendered = renderer?.(change, {entry, guildId, i18n}); + if (!rendered && !shouldShowFallbackChangeDetail(change)) { + return null; + } + const tone = getChangeTone(change); + const ChangeIcon = getChangeIcon(tone); + const toneClass = getChangeBulletToneClass(tone); + return ( +
+ + + + + {rendered ?? renderFallbackChangeDetail(change, guildId, i18n)} + +
+ ); + }) + .filter((row): row is ReactElement => row !== null); + const shouldShowReasonPreview = typeof entry.reason === 'string' && entry.reason.trim().length > 0; + const isExpandable = shouldShowReasonPreview || changeRows.length > 0 || optionEntries.length > 0; + const isExpandedView = isExpandable && expandedEntryId === entryId; + const headerClasses = clsx(styles.header, { + [styles.headerClickable]: isExpandable, + [styles.headerStatic]: !isExpandable, + [styles.headerExpanded]: isExpandedView, + [styles.headerDefault]: !isExpandedView, + }); + return ( +
+ {isExpandable ? ( + + + + ) : ( +
+ + + +
+ {actorUser ? ( + + ) : ( + + )} +
+
+
+ + {summaryNode} + +
+
+ + {formatTimestamp(entry.id)} + +
+
+
+ )} + {isExpandedView && ( +
+ {shouldShowReasonPreview && ( +
+ + Reason + + + {reasonText} + +
+ )} + {(changeRows.length > 0 || optionEntries.length > 0) && ( +
+ {changeRows} + {optionEntries.map(([key, value]) => ( +
+ {(() => { + const tone = getOptionTone(value); + const ChangeIcon = getChangeIcon(tone); + const toneClass = getChangeBulletToneClass(tone); + return ( + + + + ); + })()} + + {renderOptionDetailSentence( + key, + value, + guildId, + entry.action_type as AuditLogActionType, + i18n, + )} + +
+ ))} +
+ )} +
+ )} +
+ ); + })} +
+ )} + {shouldShowEmptyState && ( +
+ +
+ )} + {!isLoading && shouldShowErrorState && ( +
+ +
+ +
+
+ )} + {hasMore && entries.length > 0 && !shouldShowErrorState && ( +
+
+ {isLoading && ( + + )} +
+ )} +
+
+ ); +}); + +const GuildActivityLogTab: React.FC<{guildId: string}> = observer(({guildId}) => + GuildActivityLogPresentationRollout.enabled ? ( + + ) : ( + + ), +); + +export default GuildActivityLogTab; diff --git a/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogTabComponents.tsx b/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogTabComponents.tsx index a785f235f..6f5b1a793 100644 --- a/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogTabComponents.tsx +++ b/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogTabComponents.tsx @@ -20,16 +20,6 @@ const CLICK_TO_COPY_ID_DESCRIPTOR = msg({ comment: 'Label in the guild audit log tab.components.', }); -interface UserTagParts { - name: string; - discriminator: string | null; -} - -const splitTag = (tag: string): UserTagParts => { - const idx = tag.lastIndexOf('#'); - if (idx <= 0) return {name: tag, discriminator: null}; - return {name: tag.slice(0, idx), discriminator: tag.slice(idx + 1)}; -}; export const ColorDot: React.FC<{color: string; className?: string}> = ({color, className}) => ( = ({user, className}) => { - const parts = splitTag(user.tag); - return ( - - - {user.displayName ?? parts.name} - - {parts.discriminator ? ( - - #{parts.discriminator} - - ) : null} - - ); -}; -export const TargetHook: React.FC<{label: string; className?: string; title?: string}> = ({ - label, - className, - title, -}) => { - const content = ( - - {label} - - ); - return title ? ( - - {content} - - ) : ( - content - ); -}; interface ClickableUserProps { user: User; diff --git a/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx b/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx index 9524a5bd1..a11445fa1 100644 --- a/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx +++ b/fluxer_app/src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx @@ -686,7 +686,14 @@ const INVITE_CHANGE_RENDERERS: Record = { const count = change.newValue; return ( - This invite expires after . + This invite expires after{' '} + + . ); }, diff --git a/fluxer_app/src/features/guild/state/GuildActivityLogPresentationRollout.test.ts b/fluxer_app/src/features/guild/state/GuildActivityLogPresentationRollout.test.ts new file mode 100644 index 000000000..5905dec50 --- /dev/null +++ b/fluxer_app/src/features/guild/state/GuildActivityLogPresentationRollout.test.ts @@ -0,0 +1,94 @@ +// @vitest-environment happy-dom +// SPDX-License-Identifier: AGPL-3.0-or-later + +import { + type ExperimentAssignmentsResponse, + INERT_EXPERIMENT_ASSIGNMENTS_RESPONSE, +} from '@fluxer/schema/src/domains/experiment/ExperimentSchemas'; +import { + type GuildActivityLogPresentationAssignmentResponse, + INERT_GUILD_ACTIVITY_LOG_PRESENTATION_ASSIGNMENT, +} from '@fluxer/schema/src/domains/experiment/GuildActivityLogPresentationSchemas'; +import {runInAction} from 'mobx'; +import {afterEach, describe, expect, it, vi} from 'vitest'; + +vi.mock('@app/features/platform/utils/AppLogger', () => ({ + Logger: class { + debug = vi.fn(); + info = vi.fn(); + warn = vi.fn(); + error = vi.fn(); + }, +})); + +vi.mock('@app/features/platform/transport/RestTransport', () => ({ + http: {get: vi.fn(), post: vi.fn()}, +})); + +const {ExperimentAssignments} = await import('@app/features/experiment/state/ExperimentAssignments'); +const {GuildActivityLogPresentationRollout} = await import( + '@app/features/guild/state/GuildActivityLogPresentationRollout' +); + +function publish(assignment: GuildActivityLogPresentationAssignmentResponse): void { + const response: ExperimentAssignmentsResponse = { + poll_interval_seconds: 300, + poll_jitter_percent: 15, + assignments: {guild_activity_log_presentation: assignment}, + }; + runInAction(() => { + ExperimentAssignments.response = response; + }); +} + +function publishWithoutAssignment(): void { + const response: ExperimentAssignmentsResponse = { + poll_interval_seconds: 300, + poll_jitter_percent: 15, + assignments: {}, + }; + runInAction(() => { + ExperimentAssignments.response = response; + }); +} + +afterEach(() => { + runInAction(() => { + ExperimentAssignments.response = INERT_EXPERIMENT_ASSIGNMENTS_RESPONSE; + }); +}); + +describe('GuildActivityLogPresentationRollout', () => { + it('reads the inert assignment out of the inert envelope', () => { + expect(GuildActivityLogPresentationRollout.assignment).toBe(INERT_GUILD_ACTIVITY_LOG_PRESENTATION_ASSIGNMENT); + expect(GuildActivityLogPresentationRollout.enabled).toBe(false); + }); + + it('stays on the control arm for an envelope that carries no key for this experiment', () => { + publishWithoutAssignment(); + expect(GuildActivityLogPresentationRollout.assignment).toBe(INERT_GUILD_ACTIVITY_LOG_PRESENTATION_ASSIGNMENT); + expect(GuildActivityLogPresentationRollout.enabled).toBe(false); + }); + + it('stays on the control arm while the rollout is disabled', () => { + publish({enabled: false, config_version: 4, user_targeted: false, source: null}); + expect(GuildActivityLogPresentationRollout.enabled).toBe(false); + }); + + it('stays on the control arm for an account the rollout did not target', () => { + publish({enabled: true, config_version: 4, user_targeted: false, source: null}); + expect(GuildActivityLogPresentationRollout.enabled).toBe(false); + }); + + it('moves to the experiment arm for a targeted account', () => { + publish({enabled: true, config_version: 4, user_targeted: true, source: 'canary'}); + expect(GuildActivityLogPresentationRollout.enabled).toBe(true); + }); + + it('follows the envelope back to the control arm when the store is reset', () => { + publish({enabled: true, config_version: 4, user_targeted: true, source: 'user_rule'}); + expect(GuildActivityLogPresentationRollout.enabled).toBe(true); + ExperimentAssignments.reset(); + expect(GuildActivityLogPresentationRollout.enabled).toBe(false); + }); +}); diff --git a/fluxer_app/src/features/guild/state/GuildActivityLogPresentationRollout.ts b/fluxer_app/src/features/guild/state/GuildActivityLogPresentationRollout.ts new file mode 100644 index 000000000..82c95e85c --- /dev/null +++ b/fluxer_app/src/features/guild/state/GuildActivityLogPresentationRollout.ts @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import ExperimentAssignments from '@app/features/experiment/state/ExperimentAssignments'; +import {readGuildActivityLogPresentationAssignment} from '@fluxer/schema/src/domains/experiment/ExperimentSchemas'; +import type {GuildActivityLogPresentationAssignmentResponse} from '@fluxer/schema/src/domains/experiment/GuildActivityLogPresentationSchemas'; + +class GuildActivityLogPresentationRolloutSelector { + get assignment(): GuildActivityLogPresentationAssignmentResponse { + return readGuildActivityLogPresentationAssignment(ExperimentAssignments.response); + } + + get enabled(): boolean { + const assignment = this.assignment; + return assignment.enabled && assignment.user_targeted; + } +} + +export const GuildActivityLogPresentationRollout = new GuildActivityLogPresentationRolloutSelector(); + +export default GuildActivityLogPresentationRollout; diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts new file mode 100644 index 000000000..c07d54c92 --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts @@ -0,0 +1,387 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {msg} from '@lingui/core/macro'; + +export const CHANNEL_CREATE_TEXT_SUMMARY = msg({ + message: '{actor} created the text channel {channel}.', + comment: + 'Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name.', +}); +export const CHANNEL_CREATE_TEXT_IN_CATEGORY_SUMMARY = msg({ + message: '{actor} created the text channel {channel} in {category}.', + comment: + 'Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name.', +}); +export const CHANNEL_CREATE_VOICE_SUMMARY = msg({ + message: '{actor} created the voice channel {channel}.', + comment: + 'Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name.', +}); +export const CHANNEL_CREATE_VOICE_IN_CATEGORY_SUMMARY = msg({ + message: '{actor} created the voice channel {channel} in {category}.', + comment: + 'Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name.', +}); +export const CHANNEL_CREATE_LINK_SUMMARY = msg({ + message: '{actor} created the link channel {channel}.', + comment: + 'Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name.', +}); +export const CHANNEL_CREATE_LINK_IN_CATEGORY_SUMMARY = msg({ + message: '{actor} created the link channel {channel} in {category}.', + comment: + 'Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name.', +}); +export const CHANNEL_CREATE_GENERIC_SUMMARY = msg({ + message: '{actor} created the channel {channel}.', + comment: + 'Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name.', +}); +export const CHANNEL_CREATE_GENERIC_IN_CATEGORY_SUMMARY = msg({ + message: '{actor} created the channel {channel} in {category}.', + comment: + 'Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name.', +}); +export const CHANNEL_CREATE_CATEGORY_SUMMARY = msg({ + message: '{actor} created the category {channel}.', + comment: + 'Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name.', +}); + +export const CHANNEL_LINK_SET_ROW = msg({ + message: 'Set the link to {url}.', + comment: + 'Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text.', +}); +export const CHANNEL_TOPIC_SET_ROW = msg({ + message: 'Set the topic to {text}.', + comment: + 'Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text.', +}); +export const CHANNEL_MARKED_MATURE_ROW = msg({ + message: 'Marked the channel as containing mature content.', + comment: + 'Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const CHANNEL_MARKED_NOT_MATURE_ROW = msg({ + message: 'Marked the channel as not containing mature content.', + comment: + 'Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const CHANNEL_CONTENT_WARNING_ADDED_WITH_TEXT_ROW = msg({ + message: 'Added a content warning with the text {text}.', + comment: + 'Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text.', +}); +export const CHANNEL_CONTENT_WARNING_ADDED_ROW = msg({ + message: 'Added a content warning.', + comment: + 'Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const CHANNEL_SLOWMODE_SET_ROW = msg({ + message: 'Set slowmode to {duration}.', + comment: + 'Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour".', +}); +export const CHANNEL_AUDIO_QUALITY_SET_ROW = msg({ + message: 'Set the audio quality to {kbps} kbps.', + comment: + 'Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation.', +}); +export const CHANNEL_USER_LIMIT_SET_ROW = msg({ + message: 'Limited the channel to {count, plural, one {# user} other {# users}}.', + comment: + 'Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum.', +}); +export const CHANNEL_CONNECTION_LIMIT_SET_ROW = msg({ + message: 'Allowed up to {count, plural, one {# connection} other {# connections}} per member.', + comment: + 'Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member.', +}); +export const CHANNEL_VOICE_REGION_SET_ROW = msg({ + message: 'Set the voice region to {region}.', + comment: + 'Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or .', +}); + +export const CHANNEL_RENAME_TEXT_SUMMARY = msg({ + message: '{actor} renamed the text channel {oldName} to {newName}.', + comment: + 'Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or .', +}); +export const CHANNEL_RENAME_VOICE_SUMMARY = msg({ + message: '{actor} renamed the voice channel {oldName} to {newName}.', + comment: + 'Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or .', +}); +export const CHANNEL_RENAME_LINK_SUMMARY = msg({ + message: '{actor} renamed the link channel {oldName} to {newName}.', + comment: + 'Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or .', +}); +export const CHANNEL_RENAME_CATEGORY_SUMMARY = msg({ + message: '{actor} renamed the category {oldName} to {newName}.', + comment: + 'Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or .', +}); +export const CHANNEL_RENAME_GENERIC_SUMMARY = msg({ + message: '{actor} renamed the channel {oldName} to {newName}.', + comment: + 'Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or .', +}); + +export const CHANNEL_OVERRIDES_CHANGED_TEXT_SUMMARY = msg({ + message: '{actor} changed the permission overrides of the text channel {channel}.', + comment: + 'Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name.', +}); +export const CHANNEL_OVERRIDES_CHANGED_VOICE_SUMMARY = msg({ + message: '{actor} changed the permission overrides of the voice channel {channel}.', + comment: + 'Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name.', +}); +export const CHANNEL_OVERRIDES_CHANGED_LINK_SUMMARY = msg({ + message: '{actor} changed the permission overrides of the link channel {channel}.', + comment: + 'Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name.', +}); +export const CHANNEL_OVERRIDES_CHANGED_CATEGORY_SUMMARY = msg({ + message: '{actor} changed the permission overrides of the category {channel}.', + comment: + 'Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name.', +}); +export const CHANNEL_OVERRIDES_CHANGED_GENERIC_SUMMARY = msg({ + message: '{actor} changed the permission overrides of the channel {channel}.', + comment: + 'Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name.', +}); + +export const CHANNEL_UPDATE_TEXT_SUMMARY = msg({ + message: '{actor} updated the text channel {channel}.', + comment: + 'Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name.', +}); +export const CHANNEL_UPDATE_VOICE_SUMMARY = msg({ + message: '{actor} updated the voice channel {channel}.', + comment: + 'Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name.', +}); +export const CHANNEL_UPDATE_LINK_SUMMARY = msg({ + message: '{actor} updated the link channel {channel}.', + comment: + 'Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name.', +}); +export const CHANNEL_UPDATE_CATEGORY_SUMMARY = msg({ + message: '{actor} updated the category {channel}.', + comment: + 'Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name.', +}); +export const CHANNEL_UPDATE_GENERIC_SUMMARY = msg({ + message: '{actor} updated the channel {channel}.', + comment: + 'Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name.', +}); + +export const CHANNEL_NAME_CHANGED_ROW = msg({ + message: 'Changed the name from {oldName} to {newName}.', + comment: + 'Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or .', +}); +export const CHANNEL_MOVED_INTO_CATEGORY_ROW = msg({ + message: 'Moved the channel into the category {category}.', + comment: + 'Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name.', +}); +export const CHANNEL_MOVED_OUT_OF_CATEGORY_ROW = msg({ + message: 'Removed the channel from the category {category}.', + comment: + 'Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name.', +}); +export const CHANNEL_MOVED_BETWEEN_CATEGORIES_ROW = msg({ + message: 'Moved the channel from the category {oldCategory} to the category {newCategory}.', + comment: + 'Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names.', +}); +export const CHANNEL_LINK_CHANGED_ROW = msg({ + message: 'Changed the link from {oldUrl} to {newUrl}.', + comment: + 'Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text.', +}); +export const CHANNEL_LINK_REMOVED_ROW = msg({ + message: 'Removed the link.', + comment: + 'Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const CHANNEL_TOPIC_REMOVED_ROW = msg({ + message: 'Removed the topic {text}.', + comment: + 'Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text.', +}); +export const CHANNEL_TOPIC_CHANGED_ROW = msg({ + message: 'Changed the topic from {oldText} to {newText}.', + comment: + 'Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text.', +}); +export const CHANNEL_MATURE_FOLLOWS_COMMUNITY_ROW = msg({ + message: 'Made the channel inherit its mature content setting.', + comment: + 'Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const CHANNEL_CONTENT_WARNING_REMOVED_ROW = msg({ + message: 'Removed the content warning.', + comment: + 'Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const CHANNEL_CONTENT_WARNING_TEXT_SET_ROW = msg({ + message: 'Set the content warning text to {text}.', + comment: + 'Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text.', +}); +export const CHANNEL_CONTENT_WARNING_TEXT_CHANGED_ROW = msg({ + message: 'Changed the content warning text from {oldText} to {newText}.', + comment: + 'Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text.', +}); +export const CHANNEL_CONTENT_WARNING_TEXT_REMOVED_ROW = msg({ + message: 'Removed the content warning text.', + comment: + 'Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const CHANNEL_SLOWMODE_CHANGED_ROW = msg({ + message: 'Changed slowmode from {oldDuration} to {newDuration}.', + comment: + 'Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour".', +}); +export const CHANNEL_SLOWMODE_TURNED_OFF_ROW = msg({ + message: 'Turned off slowmode.', + comment: + 'Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const CHANNEL_AUDIO_QUALITY_CHANGED_ROW = msg({ + message: 'Changed the audio quality from {oldKbps} kbps to {newKbps} kbps.', + comment: + 'Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation.', +}); +export const CHANNEL_USER_LIMIT_CHANGED_ROW = msg({ + message: 'Changed the user limit from {oldCount} to {newCount}.', + comment: + 'Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers.', +}); +export const CHANNEL_USER_LIMIT_REMOVED_ROW = msg({ + message: 'Removed the user limit.', + comment: + 'Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const CHANNEL_CONNECTION_LIMIT_CHANGED_ROW = msg({ + message: 'Changed the connections per member from {oldCount} to {newCount}.', + comment: + 'Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers.', +}); +export const CHANNEL_VOICE_REGION_AUTOMATIC_ROW = msg({ + message: 'Set the voice region to automatic.', + comment: + 'Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here.', +}); +export const CHANNEL_VOICE_REGION_CHANGED_ROW = msg({ + message: 'Changed the voice region from {oldRegion} to {newRegion}.', + comment: + 'Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or .', +}); + +export const CHANNEL_DELETE_TEXT_SUMMARY = msg({ + message: '{actor} deleted the text channel {channel}.', + comment: + 'Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had.', +}); +export const CHANNEL_DELETE_VOICE_SUMMARY = msg({ + message: '{actor} deleted the voice channel {channel}.', + comment: + 'Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had.', +}); +export const CHANNEL_DELETE_LINK_SUMMARY = msg({ + message: '{actor} deleted the link channel {channel}.', + comment: + 'Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had.', +}); +export const CHANNEL_DELETE_CATEGORY_SUMMARY = msg({ + message: '{actor} deleted the category {channel}.', + comment: + 'Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had.', +}); +export const CHANNEL_DELETE_GENERIC_SUMMARY = msg({ + message: '{actor} deleted the channel {channel}.', + comment: + 'Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had.', +}); + +export const CHANNEL_OVERWRITE_CREATE_ROLE_SUMMARY = msg({ + message: '{actor} added a permission override for the role {role} in {channel}.', + comment: + 'Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name.', +}); +export const CHANNEL_OVERWRITE_CREATE_MEMBER_SUMMARY = msg({ + message: '{actor} added a permission override for {user} in {channel}.', + comment: + 'Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name.', +}); +export const CHANNEL_OVERWRITE_CREATE_EVERYONE_SUMMARY = msg({ + message: '{actor} added a permission override for @everyone in {channel}.', + comment: + 'Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name.', +}); +export const CHANNEL_OVERWRITE_UPDATE_ROLE_SUMMARY = msg({ + message: '{actor} updated the permission override for the role {role} in {channel}.', + comment: + 'Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name.', +}); +export const CHANNEL_OVERWRITE_UPDATE_MEMBER_SUMMARY = msg({ + message: '{actor} updated the permission override for {user} in {channel}.', + comment: + 'Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name.', +}); +export const CHANNEL_OVERWRITE_UPDATE_EVERYONE_SUMMARY = msg({ + message: '{actor} updated the permission override for @everyone in {channel}.', + comment: + 'Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name.', +}); +export const CHANNEL_OVERWRITE_DELETE_ROLE_SUMMARY = msg({ + message: '{actor} removed the permission override for the role {role} from {channel}.', + comment: + 'Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name.', +}); +export const CHANNEL_OVERWRITE_DELETE_MEMBER_SUMMARY = msg({ + message: '{actor} removed the permission override for {user} from {channel}.', + comment: + 'Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name.', +}); +export const CHANNEL_OVERWRITE_DELETE_EVERYONE_SUMMARY = msg({ + message: '{actor} removed the permission override for @everyone from {channel}.', + comment: + 'Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name.', +}); + +export const CHANNEL_OVERWRITE_ALLOWED_ROW = msg({ + message: 'Allowed {permissions}.', + comment: + 'Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions".', +}); +export const CHANNEL_OVERWRITE_DENIED_ROW = msg({ + message: 'Denied {permissions}.', + comment: + 'Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions".', +}); +export const CHANNEL_OVERWRITE_STOPPED_OVERRIDING_ROW = msg({ + message: 'Removed the override for {permissions}.', + comment: + 'Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions".', +}); +export const CHANNEL_OVERWRITE_REMOVED_ALLOWED_ROW = msg({ + message: 'The override allowed {permissions}.', + comment: + 'Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions".', +}); +export const CHANNEL_OVERWRITE_REMOVED_DENIED_ROW = msg({ + message: 'The override denied {permissions}.', + comment: + 'Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions".', +}); diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelPresentation.test.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelPresentation.test.ts new file mode 100644 index 000000000..381fc0c20 --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelPresentation.test.ts @@ -0,0 +1,1050 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {presentAuditLogEntry} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogPresentation'; +import { + fakeContext, + makeEntry, + resultToText, + TEST_ACTOR_ID, + TEST_GUILD_ID, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogTestUtils'; +import {AuditLogActionType} from '@fluxer/constants/src/AuditLogActionType'; +import {Permissions} from '@fluxer/constants/src/ChannelConstants'; +import {describe, expect, it, vi} from 'vitest'; + +vi.mock('@lingui/core/macro', () => { + const descriptor = (value: unknown): unknown => (typeof value === 'string' ? {message: value} : value); + return {msg: descriptor, t: descriptor, plural: () => '', select: () => '', selectOrdinal: () => ''}; +}); + +vi.mock('@app/features/app/config/Config', () => ({ + default: { + PUBLIC_BUILD_VERSION: 'test', + PUBLIC_RELEASE_CHANNEL: 'canary', + PUBLIC_BOOTSTRAP_API_ENDPOINT: 'https://example.invalid', + PUBLIC_BOOTSTRAP_API_PUBLIC_ENDPOINT: 'https://example.invalid', + }, +})); + +type EntryFixture = Parameters[0]; +type ChangeFixture = NonNullable[number]; + +const CHANNEL_ID = '1400000000000000200'; +const CATEGORY_ID = '1400000000000000201'; +const OTHER_CATEGORY_ID = '1400000000000000202'; +const ROLE_ID = '1400000000000000300'; +const MEMBER_ID = '1400000000000000400'; +const UNKNOWN_PERMISSION_BIT = 1n << 19n; +const NAMES = {[TEST_ACTOR_ID]: 'Hampus', [MEMBER_ID]: 'ender'}; +const ACTOR = {kind: 'user', id: TEST_ACTOR_ID}; +const VOICE_DEFAULTS = {type: 2, name: 'Lounge', bitrate: 64000, user_limit: 0, voice_connection_limit: 5}; + +const ROLE_OVERWRITE = {target_id: ROLE_ID, options: {channel_id: CHANNEL_ID, id: ROLE_ID, type: 0, role_name: 'Mods'}}; +const MEMBER_OVERWRITE = {target_id: MEMBER_ID, options: {channel_id: CHANNEL_ID, id: MEMBER_ID, type: 1}}; +const EVERYONE_OVERWRITE = {target_id: TEST_GUILD_ID, options: {channel_id: CHANNEL_ID, id: TEST_GUILD_ID, type: 0}}; + +interface OverwriteTarget { + target_id: string; + options: Record; +} + +function present(fixture: EntryFixture) { + const presentation = presentAuditLogEntry(makeEntry(fixture), fakeContext()); + return {...resultToText(presentation, NAMES), expandable: presentation.expandable}; +} + +function summaryValues(fixture: EntryFixture) { + return presentAuditLogEntry(makeEntry(fixture), fakeContext()).summary.values; +} + +function change(key: string, oldValue: unknown, newValue: unknown): ChangeFixture { + return {key, old_value: oldValue, new_value: newValue}; +} + +function mask(...flags: Array): string { + return flags.reduce((all, flag) => all | flag, 0n).toString(); +} + +function channelSnapshot(values: Record): Record { + return { + channel_id: CHANNEL_ID, + type: 0, + name: 'general', + topic: null, + parent_id: null, + position: 12, + nsfw: null, + content_warning_level: 0, + content_warning_text: null, + rate_limit_per_user: 0, + user_limit: 0, + voice_connection_limit: null, + bitrate: 0, + rtc_region: null, + permission_overwrite_count: 0, + ...values, + }; +} + +function createFixture(values: Record = {}): EntryFixture { + const snapshot = channelSnapshot(values); + return { + action_type: AuditLogActionType.CHANNEL_CREATE, + target_id: CHANNEL_ID, + options: {type: snapshot.type}, + changes: Object.entries(snapshot).map(([key, value]) => ({key, new_value: value})), + }; +} + +function updateFixture(changes: Array, type?: unknown): EntryFixture { + return {action_type: AuditLogActionType.CHANNEL_UPDATE, target_id: CHANNEL_ID, options: {type}, changes}; +} + +function deleteFixture(values: Record = {}): EntryFixture { + const snapshot = channelSnapshot(values); + return { + action_type: AuditLogActionType.CHANNEL_DELETE, + target_id: CHANNEL_ID, + options: {type: snapshot.type}, + changes: Object.entries(snapshot).map(([key, value]) => ({key, old_value: value})), + }; +} + +function overwriteCreated(target: OverwriteTarget, allow: unknown, deny: unknown): EntryFixture { + return { + action_type: AuditLogActionType.CHANNEL_OVERWRITE_CREATE, + ...target, + changes: [ + {key: 'id', new_value: target.target_id}, + {key: 'type', new_value: String(target.options.type)}, + {key: 'allow', new_value: allow}, + {key: 'deny', new_value: deny}, + ], + }; +} + +function overwriteUpdated(target: OverwriteTarget, changes: Array): EntryFixture { + return {action_type: AuditLogActionType.CHANNEL_OVERWRITE_UPDATE, ...target, changes}; +} + +function overwriteDeleted(target: OverwriteTarget, allow: unknown, deny: unknown): EntryFixture { + return { + action_type: AuditLogActionType.CHANNEL_OVERWRITE_DELETE, + ...target, + changes: [ + {key: 'id', old_value: target.target_id}, + {key: 'type', old_value: String(target.options.type)}, + {key: 'allow', old_value: allow}, + {key: 'deny', old_value: deny}, + ], + }; +} + +describe('presentChannelCreate', () => { + it('shows a text channel made from the create modal as a summary with nothing to expand', () => { + expect(present(createFixture())).toEqual({ + summary: 'Hampus created the text channel #general.', + rows: [], + blocks: [], + expandable: false, + }); + }); + + it.each<[string, Record]>([ + ['Hampus created the text channel #general.', {type: 0}], + [`Hampus created the text channel #general in #${CATEGORY_ID}.`, {type: 0, parent_id: CATEGORY_ID}], + ['Hampus created the voice channel #Lounge.', VOICE_DEFAULTS], + [`Hampus created the voice channel #Lounge in #${CATEGORY_ID}.`, {...VOICE_DEFAULTS, parent_id: CATEGORY_ID}], + ['Hampus created the link channel #general.', {type: 998, url: null}], + [`Hampus created the link channel #general in #${CATEGORY_ID}.`, {type: 998, url: null, parent_id: CATEGORY_ID}], + ['Hampus created the channel #general.', {type: 13}], + [`Hampus created the channel #general in #${CATEGORY_ID}.`, {type: 13, parent_id: CATEGORY_ID}], + ['Hampus created the category #Info.', {type: 4, name: 'Info'}], + ['Hampus created the category #Info.', {type: 4, name: 'Info', parent_id: CATEGORY_ID}], + ])('gives "%s"', (summary, values) => { + expect(present(createFixture(values))).toEqual({summary, rows: [], blocks: [], expandable: false}); + }); + + it('reads the type from the options when the changes lack it, including dispatch strings', () => { + const {changes = []} = createFixture(); + expect( + present({ + action_type: AuditLogActionType.CHANNEL_CREATE, + target_id: CHANNEL_ID, + options: {type: '998'}, + changes: changes.filter((candidate) => candidate.key !== 'type'), + }).summary, + ).toBe('Hampus created the link channel #general.'); + expect(present({...createFixture({type: 2}), options: {type: 0}}).summary).toBe( + 'Hampus created the voice channel #general.', + ); + expect(present({...createFixture({type: 'voice'}), options: undefined}).summary).toBe( + 'Hampus created the channel #general.', + ); + }); + + it('records the channel name and points the category chip at the category', () => { + expect(summaryValues(createFixture({parent_id: CATEGORY_ID}))).toEqual({ + actor: ACTOR, + channel: {kind: 'channel', id: CHANNEL_ID, recordedName: 'general', fallback: 'channel'}, + category: {kind: 'channel', id: CATEGORY_ID, recordedName: null, fallback: 'category'}, + }); + expect(summaryValues(createFixture({type: 4, name: 'Info'}))).toEqual({ + actor: ACTOR, + channel: {kind: 'channel', id: CHANNEL_ID, recordedName: 'Info', fallback: 'category'}, + }); + }); + + it('names the system as the actor of a channel it created', () => { + expect(present({...createFixture(), user_id: '0'}).summary).toBe('System created the text channel #general.'); + }); + + it.each<[string, Record, Array]>([ + ['the link of a link channel', {type: 998, url: 'https://fluxer.app'}, ['~ Set the link to https://fluxer.app.']], + ['no link on a text channel', {type: 0, url: 'https://fluxer.app'}, []], + ['no blank link', {type: 998, url: ' '}, []], + ['the topic of a text channel', {type: 0, topic: 'Rules here'}, ['~ Set the topic to Rules here.']], + ['the topic of a voice channel', {...VOICE_DEFAULTS, topic: 'Hang out'}, ['~ Set the topic to Hang out.']], + ['the topic of a link channel', {type: 998, topic: 'Docs'}, ['~ Set the topic to Docs.']], + ['no topic on a category', {type: 4, topic: 'Info'}, []], + ['no blank topic', {topic: ' '}, []], + ['a mature channel', {nsfw: true}, ['+ Marked the channel as containing mature content.']], + ['a channel marked not mature', {nsfw: false}, ['- Marked the channel as not containing mature content.']], + ['no maturity when it follows the community', {nsfw: null}, []], + [ + 'a content warning with text', + {content_warning_level: 1, content_warning_text: 'Spoilers'}, + ['+ Added a content warning with the text Spoilers.'], + ], + ['a content warning without text', {content_warning_level: 1}, ['+ Added a content warning.']], + [ + 'a content warning with blank text', + {content_warning_level: 1, content_warning_text: ' '}, + ['+ Added a content warning.'], + ], + ['no content warning at level 0', {content_warning_level: 0, content_warning_text: 'Spoilers'}, []], + ['no content warning on a category', {type: 4, content_warning_level: 1}, []], + ['slowmode on a text channel', {rate_limit_per_user: 30}, ['~ Set slowmode to 30 seconds.']], + ['slowmode on a voice channel', {...VOICE_DEFAULTS, rate_limit_per_user: 3600}, ['~ Set slowmode to 1 hour.']], + ['no slowmode on a link channel', {type: 998, rate_limit_per_user: 30}, []], + ['no slowmode on a category', {type: 4, rate_limit_per_user: 30}, []], + ['no slowmode at 0', {rate_limit_per_user: 0}, []], + ['the audio quality', {...VOICE_DEFAULTS, bitrate: 96000}, ['~ Set the audio quality to 96 kbps.']], + ['no audio quality at 0', {...VOICE_DEFAULTS, bitrate: 0}, []], + ['no audio quality on a text channel', {bitrate: 96000}, []], + ['a user limit of 1', {...VOICE_DEFAULTS, user_limit: 1}, ['~ Limited the channel to 1 user.']], + ['a user limit of 10', {...VOICE_DEFAULTS, user_limit: 10}, ['~ Limited the channel to 10 users.']], + ['no user limit on a text channel', {user_limit: 10}, []], + [ + '1 connection per member', + {...VOICE_DEFAULTS, voice_connection_limit: 1}, + ['~ Allowed up to 1 connection per member.'], + ], + [ + '10 connections per member', + {...VOICE_DEFAULTS, voice_connection_limit: 10}, + ['~ Allowed up to 10 connections per member.'], + ], + ['no connection limit when it is null', {...VOICE_DEFAULTS, voice_connection_limit: null}, []], + ['no connection limit on a text channel', {voice_connection_limit: 10}, []], + ['the voice region', {...VOICE_DEFAULTS, rtc_region: 'rotterdam'}, ['~ Set the voice region to rotterdam.']], + ['no voice region on a text channel', {rtc_region: 'rotterdam'}, []], + ])('shows %s', (_label, values, rows) => { + const presentation = present(createFixture(values)); + expect({rows: presentation.rows, blocks: presentation.blocks, expandable: presentation.expandable}).toEqual({ + rows, + blocks: [], + expandable: rows.length > 0, + }); + }); + + it('gives no rows for the voice defaults', () => { + expect(present(createFixture(VOICE_DEFAULTS))).toEqual({ + summary: 'Hampus created the voice channel #Lounge.', + rows: [], + blocks: [], + expandable: false, + }); + }); + + it('lists every voice channel row in order whatever order the changes arrive in, after the reason', () => { + const fixture = createFixture({ + ...VOICE_DEFAULTS, + parent_id: CATEGORY_ID, + topic: 'Hang out', + nsfw: true, + content_warning_level: 1, + content_warning_text: 'Loud', + rate_limit_per_user: 300, + bitrate: 128000, + user_limit: 10, + voice_connection_limit: 2, + rtc_region: 'rotterdam', + }); + expect(present({...fixture, changes: [...(fixture.changes ?? [])].reverse(), reason: 'setup'})).toEqual({ + summary: `Hampus created the voice channel #Lounge in #${CATEGORY_ID}.`, + rows: [ + '~ Set the topic to Hang out.', + '+ Marked the channel as containing mature content.', + '+ Added a content warning with the text Loud.', + '~ Set slowmode to 5 minutes.', + '~ Set the audio quality to 128 kbps.', + '~ Limited the channel to 10 users.', + '~ Allowed up to 2 connections per member.', + '~ Set the voice region to rotterdam.', + ], + blocks: [{kind: 'reason', text: 'setup'}], + expandable: true, + }); + }); + + it('puts the link before the topic of a link channel', () => { + expect(present(createFixture({type: 998, url: 'https://fluxer.app', topic: 'Docs'})).rows).toEqual([ + '~ Set the link to https://fluxer.app.', + '~ Set the topic to Docs.', + ]); + }); + + it('becomes expandable for a reason alone', () => { + expect(present({...createFixture(), reason: 'Bot%20setup'})).toEqual({ + summary: 'Hampus created the text channel #general.', + rows: [], + blocks: [{kind: 'reason', text: 'Bot setup'}], + expandable: true, + }); + }); + + it('reads dispatch string values', () => { + expect( + present( + createFixture({ + type: '2', + name: 'Lounge', + nsfw: 'true', + bitrate: '96000', + user_limit: '10', + voice_connection_limit: '5', + }), + ), + ).toEqual({ + summary: 'Hampus created the voice channel #Lounge.', + rows: [ + '+ Marked the channel as containing mature content.', + '~ Set the audio quality to 96 kbps.', + '~ Limited the channel to 10 users.', + ], + blocks: [], + expandable: true, + }); + }); + + it('prints no row whose value fails its reader', () => { + expect( + present({ + action_type: AuditLogActionType.CHANNEL_CREATE, + target_id: 'not-a-snowflake', + options: {type: 'voice'}, + changes: [ + {key: 'type', new_value: {}}, + {key: 'name', new_value: 42}, + {key: 'parent_id', new_value: 1400000000}, + {key: 'topic', new_value: ['Rules']}, + {key: 'nsfw', new_value: 'yes'}, + {key: 'content_warning_level', new_value: 'on'}, + {key: 'rate_limit_per_user', new_value: 'fast'}, + ], + }), + ).toEqual({summary: 'Hampus created the channel #.', rows: [], blocks: [], expandable: false}); + }); +}); + +describe('presentChannelUpdate', () => { + it('shows the bot rename of a link channel as one sentence with nothing to expand', () => { + expect(present(updateFixture([change('name', 'User count: 417,017', 'User count: 417,018')], 998))).toEqual({ + summary: 'Hampus renamed the link channel User count: 417,017 to User count: 417,018.', + rows: [], + blocks: [], + expandable: false, + }); + }); + + it.each<[string, unknown]>([ + ['Hampus renamed the text channel old-name to new-name.', 0], + ['Hampus renamed the voice channel old-name to new-name.', 2], + ['Hampus renamed the link channel old-name to new-name.', 998], + ['Hampus renamed the category old-name to new-name.', 4], + ['Hampus renamed the category old-name to new-name.', '4'], + ['Hampus renamed the channel old-name to new-name.', 13], + ['Hampus renamed the channel old-name to new-name.', undefined], + ])('gives "%s" for a rename alone', (summary, type) => { + expect(present(updateFixture([change('name', 'old-name', 'new-name')], type))).toEqual({ + summary, + rows: [], + blocks: [], + expandable: false, + }); + }); + + it('keeps a rename alone expandable when it has a reason', () => { + expect(present({...updateFixture([change('name', 'old-name', 'new-name')], 0), reason: 'cleanup'})).toEqual({ + summary: 'Hampus renamed the text channel old-name to new-name.', + rows: [], + blocks: [{kind: 'reason', text: 'cleanup'}], + expandable: true, + }); + }); + + it.each<[string, unknown]>([ + [`Hampus changed the permission overrides of the text channel #${CHANNEL_ID}.`, 0], + [`Hampus changed the permission overrides of the voice channel #${CHANNEL_ID}.`, 2], + [`Hampus changed the permission overrides of the link channel #${CHANNEL_ID}.`, 998], + [`Hampus changed the permission overrides of the category #${CHANNEL_ID}.`, 4], + [`Hampus changed the permission overrides of the channel #${CHANNEL_ID}.`, 13], + ])('gives "%s" for a legacy overwrite count change alone', (summary, type) => { + expect(present(updateFixture([change('permission_overwrite_count', 2, 3)], type))).toEqual({ + summary, + rows: [], + blocks: [], + expandable: false, + }); + }); + + it.each<[string, unknown]>([ + [`Hampus updated the text channel #${CHANNEL_ID}.`, 0], + [`Hampus updated the voice channel #${CHANNEL_ID}.`, 2], + [`Hampus updated the link channel #${CHANNEL_ID}.`, 998], + [`Hampus updated the category #${CHANNEL_ID}.`, 4], + [`Hampus updated the channel #${CHANNEL_ID}.`, 13], + ])('gives "%s" for other changes', (summary, type) => { + expect(present(updateFixture([change('topic', null, 'Welcome')], type))).toEqual({ + summary, + rows: ['+ Set the topic to Welcome.'], + blocks: [], + expandable: true, + }); + }); + + it.each<[string, Array]>([ + ['no changes', []], + [ + 'only keys it never shows', + [change('channel_id', CHANNEL_ID, CHANNEL_ID), change('type', 0, 2), change('position', 3, 4)], + ], + ['values that read as equal', [change('topic', ' ', null), change('rtc_region', '', null)]], + ['an overwrite count that did not change', [change('permission_overwrite_count', 3, 3)]], + ['an overwrite count it cannot read', [change('permission_overwrite_count', 'three', 4)]], + ])('gives the plain summary with nothing to expand for %s', (_label, changes) => { + expect(present(updateFixture(changes, 0))).toEqual({ + summary: `Hampus updated the text channel #${CHANNEL_ID}.`, + rows: [], + blocks: [], + expandable: false, + }); + }); + + it('leaves the channel chip without a recorded name when the channel was not renamed', () => { + expect(summaryValues(updateFixture([change('topic', null, 'Welcome')], 0))).toEqual({ + actor: ACTOR, + channel: {kind: 'channel', id: CHANNEL_ID, recordedName: null, fallback: 'channel'}, + }); + expect(summaryValues(updateFixture([change('permission_overwrite_count', 0, 1)], 4))).toEqual({ + actor: ACTOR, + channel: {kind: 'channel', id: CHANNEL_ID, recordedName: null, fallback: 'category'}, + }); + }); + + it('uses the new name and a name row when a rename comes with other changes', () => { + expect( + present(updateFixture([change('name', 'old-name', 'new-name'), change('permission_overwrite_count', 1, 2)], 0)), + ).toEqual({ + summary: 'Hampus updated the text channel #new-name.', + rows: ['~ Changed the name from old-name to new-name.'], + blocks: [], + expandable: true, + }); + expect( + summaryValues(updateFixture([change('name', 'old-name', 'new-name'), change('nsfw', null, true)], 0)), + ).toEqual({ + actor: ACTOR, + channel: {kind: 'channel', id: CHANNEL_ID, recordedName: 'new-name', fallback: 'channel'}, + }); + }); + + it.each<[string, Array, Array]>([ + [ + 'a move into a category', + [change('parent_id', null, CATEGORY_ID)], + [`~ Moved the channel into the category #${CATEGORY_ID}.`], + ], + [ + 'a move out of a category', + [change('parent_id', CATEGORY_ID, null)], + [`~ Removed the channel from the category #${CATEGORY_ID}.`], + ], + [ + 'a move between categories', + [change('parent_id', CATEGORY_ID, OTHER_CATEGORY_ID)], + [`~ Moved the channel from the category #${CATEGORY_ID} to the category #${OTHER_CATEGORY_ID}.`], + ], + ['a link that was set', [change('url', null, 'https://fluxer.app')], ['+ Set the link to https://fluxer.app.']], + [ + 'a link that changed', + [change('url', 'https://fluxer.app', 'https://docs.fluxer.app')], + ['~ Changed the link from https://fluxer.app to https://docs.fluxer.app.'], + ], + ['a link that was removed', [change('url', 'https://fluxer.app', null)], ['- Removed the link.']], + ['a topic that was set', [change('topic', null, 'Welcome')], ['+ Set the topic to Welcome.']], + ['a topic that was set from blank', [change('topic', ' ', 'Welcome')], ['+ Set the topic to Welcome.']], + ['a topic that was removed', [change('topic', 'Welcome', null)], ['- Removed the topic Welcome.']], + ['a topic that changed', [change('topic', 'Welcome', 'Hello')], ['~ Changed the topic from Welcome to Hello.']], + [ + 'a channel marked mature from the community setting', + [change('nsfw', null, true)], + ['+ Marked the channel as containing mature content.'], + ], + [ + 'a channel marked mature from not mature', + [change('nsfw', false, true)], + ['+ Marked the channel as containing mature content.'], + ], + [ + 'a channel marked not mature from the community setting', + [change('nsfw', null, false)], + ['- Marked the channel as not containing mature content.'], + ], + [ + 'a channel marked not mature from mature', + [change('nsfw', true, false)], + ['- Marked the channel as not containing mature content.'], + ], + [ + 'a mature channel that follows the community again', + [change('nsfw', true, null)], + ['~ Made the channel inherit its mature content setting.'], + ], + [ + 'a not mature channel that follows the community again', + [change('nsfw', false, null)], + ['~ Made the channel inherit its mature content setting.'], + ], + ['no maturity row for a value it cannot read', [change('nsfw', true, 'yes')], []], + ['slowmode that was turned on', [change('rate_limit_per_user', 0, 30)], ['+ Set slowmode to 30 seconds.']], + [ + 'slowmode that changed', + [change('rate_limit_per_user', 30, 3600)], + ['~ Changed slowmode from 30 seconds to 1 hour.'], + ], + ['slowmode that was turned off', [change('rate_limit_per_user', 3600, 0)], ['- Turned off slowmode.']], + [ + 'slowmode sent as dispatch strings', + [change('rate_limit_per_user', '0', '10')], + ['+ Set slowmode to 10 seconds.'], + ], + ['no slowmode row for a value it cannot read', [change('rate_limit_per_user', 30, 'fast')], []], + [ + 'an audio quality change', + [change('bitrate', 64000, 96000)], + ['~ Changed the audio quality from 64 kbps to 96 kbps.'], + ], + ['no audio quality row from 0', [change('bitrate', 0, 64000)], []], + ['a user limit of 1', [change('user_limit', 0, 1)], ['~ Limited the channel to 1 user.']], + ['a user limit of 10', [change('user_limit', 0, 10)], ['~ Limited the channel to 10 users.']], + ['a user limit that changed', [change('user_limit', 10, 20)], ['~ Changed the user limit from 10 to 20.']], + ['a user limit that was removed', [change('user_limit', 10, 0)], ['~ Removed the user limit.']], + [ + 'a connection limit that changed', + [change('voice_connection_limit', 5, 10)], + ['~ Changed the connections per member from 5 to 10.'], + ], + ['no connection limit row from null', [change('voice_connection_limit', null, 5)], []], + [ + 'a voice region that was set', + [change('rtc_region', null, 'rotterdam')], + ['~ Set the voice region to rotterdam.'], + ], + [ + 'a voice region back to automatic', + [change('rtc_region', 'rotterdam', null)], + ['~ Set the voice region to automatic.'], + ], + [ + 'a voice region that changed', + [change('rtc_region', 'rotterdam', 'frankfurt')], + ['~ Changed the voice region from rotterdam to frankfurt.'], + ], + ])('shows %s', (_label, changes, rows) => { + expect(present(updateFixture(changes, 2))).toEqual({ + summary: `Hampus updated the voice channel #${CHANNEL_ID}.`, + rows, + blocks: [], + expandable: rows.length > 0, + }); + }); + + it.each<[string, Array, Array]>([ + [ + 'a content warning added with text', + [change('content_warning_level', 0, 1), change('content_warning_text', null, 'Spoilers')], + ['+ Added a content warning with the text Spoilers.'], + ], + [ + 'a content warning added without a text change', + [change('content_warning_level', 0, 1)], + ['+ Added a content warning.'], + ], + [ + 'a content warning added with blank text', + [change('content_warning_level', 0, 1), change('content_warning_text', null, ' ')], + ['+ Added a content warning.'], + ], + [ + 'a content warning added from a level it cannot read', + [change('content_warning_level', null, 1)], + ['+ Added a content warning.'], + ], + [ + 'a content warning removed with its text', + [change('content_warning_level', 1, 0), change('content_warning_text', 'Spoilers', null)], + ['- Removed the content warning.'], + ], + ['a content warning removed alone', [change('content_warning_level', 1, 0)], ['- Removed the content warning.']], + [ + 'content warning text that was set', + [change('content_warning_text', null, 'Spoilers')], + ['~ Set the content warning text to Spoilers.'], + ], + [ + 'content warning text that changed', + [change('content_warning_text', 'Spoilers', 'Gore')], + ['~ Changed the content warning text from Spoilers to Gore.'], + ], + [ + 'content warning text that was removed', + [change('content_warning_text', 'Spoilers', null)], + ['~ Removed the content warning text.'], + ], + ['no row for an unknown level alone', [change('content_warning_level', 0, 2)], []], + [ + 'a text change next to an unknown level', + [change('content_warning_level', 0, 2), change('content_warning_text', null, 'Spoilers')], + ['~ Set the content warning text to Spoilers.'], + ], + ])('shows %s', (_label, changes, rows) => { + expect(present(updateFixture(changes, 0))).toEqual({ + summary: `Hampus updated the text channel #${CHANNEL_ID}.`, + rows, + blocks: [], + expandable: rows.length > 0, + }); + }); + + it('lists the rows of an overview save in order', () => { + expect( + present( + updateFixture( + [change('rate_limit_per_user', 0, 10), change('topic', null, 'Hi'), change('name', 'old-name', 'new-name')], + 0, + ), + ), + ).toEqual({ + summary: 'Hampus updated the text channel #new-name.', + rows: [ + '~ Changed the name from old-name to new-name.', + '+ Set the topic to Hi.', + '+ Set slowmode to 10 seconds.', + ], + blocks: [], + expandable: true, + }); + }); + + it('orders every row kind the same way whatever order the changes arrive in', () => { + const changes = [ + change('name', 'old-name', 'new-name'), + change('parent_id', null, CATEGORY_ID), + change('url', null, 'https://fluxer.app'), + change('topic', 'Welcome', null), + change('nsfw', null, true), + change('content_warning_level', 1, 0), + change('rate_limit_per_user', 30, 0), + change('bitrate', 64000, 96000), + change('user_limit', 0, 10), + change('voice_connection_limit', 5, 10), + change('rtc_region', null, 'rotterdam'), + change('permission_overwrite_count', 0, 2), + change('position', 1, 2), + ]; + expect(present(updateFixture([...changes].reverse(), 2))).toEqual({ + summary: 'Hampus updated the voice channel #new-name.', + rows: [ + '~ Changed the name from old-name to new-name.', + `~ Moved the channel into the category #${CATEGORY_ID}.`, + '+ Set the link to https://fluxer.app.', + '- Removed the topic Welcome.', + '+ Marked the channel as containing mature content.', + '- Removed the content warning.', + '- Turned off slowmode.', + '~ Changed the audio quality from 64 kbps to 96 kbps.', + '~ Limited the channel to 10 users.', + '~ Changed the connections per member from 5 to 10.', + '~ Set the voice region to rotterdam.', + ], + blocks: [], + expandable: true, + }); + }); + + it('gives a rename with an old name it cannot read the plain summary with the new name', () => { + expect(present(updateFixture([change('name', 42, 'new-name')], 0))).toEqual({ + summary: 'Hampus updated the text channel #new-name.', + rows: [], + blocks: [], + expandable: false, + }); + }); +}); + +describe('presentChannelDelete', () => { + it.each<[string, Record]>([ + ['Hampus deleted the text channel #general.', {type: 0}], + ['Hampus deleted the voice channel #Lounge.', VOICE_DEFAULTS], + ['Hampus deleted the link channel #Docs.', {type: 998, name: 'Docs', url: 'https://fluxer.app'}], + ['Hampus deleted the category #Info.', {type: 4, name: 'Info'}], + ['Hampus deleted the channel #general.', {type: 13}], + ])('gives "%s" with no rows', (summary, values) => { + expect(present(deleteFixture(values))).toEqual({summary, rows: [], blocks: [], expandable: false}); + }); + + it('reads the type from the changes when the options lack it, and prefers the options', () => { + expect(present({...deleteFixture(VOICE_DEFAULTS), options: undefined}).summary).toBe( + 'Hampus deleted the voice channel #Lounge.', + ); + expect(present({...deleteFixture({type: 0, name: 'Info'}), options: {type: '4'}}).summary).toBe( + 'Hampus deleted the category #Info.', + ); + }); + + it('records the deleted name and picks the deleted label by type', () => { + expect(summaryValues(deleteFixture({type: 4, name: 'Info'}))).toEqual({ + actor: ACTOR, + channel: {kind: 'channel', id: CHANNEL_ID, recordedName: 'Info', fallback: 'category'}, + }); + expect(summaryValues(deleteFixture({name: null}))).toEqual({ + actor: ACTOR, + channel: {kind: 'channel', id: CHANNEL_ID, recordedName: null, fallback: 'channel'}, + }); + }); + + it('becomes expandable for a reason alone', () => { + expect(present({...deleteFixture(), reason: 'Old channel'})).toEqual({ + summary: 'Hampus deleted the text channel #general.', + rows: [], + blocks: [{kind: 'reason', text: 'Old channel'}], + expandable: true, + }); + }); +}); + +describe('channel permission override presenters', () => { + it.each<[string, EntryFixture]>([ + [ + `Hampus added a permission override for the role @Mods in #${CHANNEL_ID}.`, + overwriteCreated(ROLE_OVERWRITE, '0', '0'), + ], + [`Hampus added a permission override for ender in #${CHANNEL_ID}.`, overwriteCreated(MEMBER_OVERWRITE, '0', '0')], + [ + `Hampus added a permission override for @everyone in #${CHANNEL_ID}.`, + overwriteCreated(EVERYONE_OVERWRITE, '0', '0'), + ], + [ + `Hampus updated the permission override for the role @Mods in #${CHANNEL_ID}.`, + overwriteUpdated(ROLE_OVERWRITE, []), + ], + [`Hampus updated the permission override for ender in #${CHANNEL_ID}.`, overwriteUpdated(MEMBER_OVERWRITE, [])], + [ + `Hampus updated the permission override for @everyone in #${CHANNEL_ID}.`, + overwriteUpdated(EVERYONE_OVERWRITE, []), + ], + [ + `Hampus removed the permission override for the role @Mods from #${CHANNEL_ID}.`, + overwriteDeleted(ROLE_OVERWRITE, '0', '0'), + ], + [ + `Hampus removed the permission override for ender from #${CHANNEL_ID}.`, + overwriteDeleted(MEMBER_OVERWRITE, '0', '0'), + ], + [ + `Hampus removed the permission override for @everyone from #${CHANNEL_ID}.`, + overwriteDeleted(EVERYONE_OVERWRITE, '0', '0'), + ], + ])('gives "%s" with no rows for an empty override', (summary, fixture) => { + expect(present(fixture)).toEqual({summary, rows: [], blocks: [], expandable: false}); + }); + + it('passes the role, member and channel chips', () => { + const channel = {kind: 'channel', id: CHANNEL_ID, recordedName: null, fallback: 'channel'}; + expect(summaryValues(overwriteCreated(ROLE_OVERWRITE, '0', '0'))).toEqual({ + actor: ACTOR, + role: {kind: 'role', id: ROLE_ID, recordedName: 'Mods'}, + channel, + }); + expect(summaryValues(overwriteUpdated(MEMBER_OVERWRITE, []))).toEqual({ + actor: ACTOR, + user: {kind: 'user', id: MEMBER_ID}, + channel, + }); + expect(summaryValues(overwriteDeleted(EVERYONE_OVERWRITE, '0', '0'))).toEqual({actor: ACTOR, channel}); + }); + + it('gives a role without a recorded name an empty recorded name', () => { + const fixture = overwriteCreated({target_id: ROLE_ID, options: {channel_id: CHANNEL_ID, type: 0}}, '0', '0'); + expect(summaryValues(fixture)).toEqual({ + actor: ACTOR, + role: {kind: 'role', id: ROLE_ID, recordedName: null}, + channel: {kind: 'channel', id: CHANNEL_ID, recordedName: null, fallback: 'channel'}, + }); + expect(present(fixture).summary).toBe( + `Hampus added a permission override for the role @${ROLE_ID} in #${CHANNEL_ID}.`, + ); + }); + + it('reads the target kind from the changes when the options lack it', () => { + expect(present({...overwriteCreated(MEMBER_OVERWRITE, '0', '0'), options: {channel_id: CHANNEL_ID}}).summary).toBe( + `Hampus added a permission override for ender in #${CHANNEL_ID}.`, + ); + expect(present({...overwriteDeleted(MEMBER_OVERWRITE, '0', '0'), options: {channel_id: CHANNEL_ID}}).summary).toBe( + `Hampus removed the permission override for ender from #${CHANNEL_ID}.`, + ); + expect( + present({ + action_type: AuditLogActionType.CHANNEL_OVERWRITE_UPDATE, + target_id: MEMBER_ID, + options: {channel_id: CHANNEL_ID}, + changes: [change('type', '0', '1')], + }).summary, + ).toBe(`Hampus updated the permission override for ender in #${CHANNEL_ID}.`); + }); + + it('treats a missing target kind as a role, and a member on the community id as a member', () => { + expect( + present({ + action_type: AuditLogActionType.CHANNEL_OVERWRITE_CREATE, + target_id: ROLE_ID, + options: {channel_id: CHANNEL_ID}, + }).summary, + ).toBe(`Hampus added a permission override for the role @${ROLE_ID} in #${CHANNEL_ID}.`); + expect( + present(overwriteCreated({target_id: TEST_GUILD_ID, options: {channel_id: CHANNEL_ID, type: '1'}}, '0', '0')) + .summary, + ).toBe(`Hampus added a permission override for @${TEST_GUILD_ID} in #${CHANNEL_ID}.`); + }); + + it('gives an empty channel chip when the options lack the channel', () => { + const fixture = {...overwriteDeleted(ROLE_OVERWRITE, '0', '0'), options: {type: 0, role_name: 'Mods'}}; + expect(summaryValues(fixture).channel).toEqual({kind: 'channel', id: '', recordedName: null, fallback: 'channel'}); + expect(present(fixture).summary).toBe('Hampus removed the permission override for the role @Mods from #.'); + }); + + it('keeps the reason block from the request header', () => { + expect( + present({...overwriteCreated(EVERYONE_OVERWRITE, '0', mask(Permissions.VIEW_CHANNEL)), reason: 'setup'}), + ).toEqual({ + summary: `Hampus added a permission override for @everyone in #${CHANNEL_ID}.`, + rows: ['- Denied View channel.'], + blocks: [{kind: 'reason', text: 'setup'}], + expandable: true, + }); + }); + + it.each<[string, EntryFixture, Array]>([ + [ + 'allowed permissions', + overwriteCreated(ROLE_OVERWRITE, mask(Permissions.VIEW_CHANNEL, Permissions.SEND_MESSAGES), '0'), + ['+ Allowed View channel and Send messages.'], + ], + [ + 'denied permissions', + overwriteCreated(ROLE_OVERWRITE, '0', mask(Permissions.SEND_MESSAGES)), + ['- Denied Send messages.'], + ], + [ + 'allowed and denied permissions in that order', + overwriteCreated( + ROLE_OVERWRITE, + mask(Permissions.VIEW_CHANNEL), + mask(Permissions.ATTACH_FILES, Permissions.SEND_MESSAGES), + ), + ['+ Allowed View channel.', '- Denied Send messages and Attach files.'], + ], + [ + 'numeric allow and deny', + overwriteCreated(ROLE_OVERWRITE, Number(Permissions.VIEW_CHANNEL), Number(Permissions.SEND_MESSAGES)), + ['+ Allowed View channel.', '- Denied Send messages.'], + ], + ['unknown bits only', overwriteCreated(ROLE_OVERWRITE, UNKNOWN_PERMISSION_BIT.toString(), '0'), []], + [ + 'known bits next to unknown bits', + overwriteCreated(ROLE_OVERWRITE, (UNKNOWN_PERMISSION_BIT | Permissions.VIEW_CHANNEL).toString(), '0'), + ['+ Allowed View channel.'], + ], + [ + 'a readable deny next to an allow it cannot read', + overwriteCreated(ROLE_OVERWRITE, 'everything', mask(Permissions.SEND_MESSAGES)), + ['- Denied Send messages.'], + ], + ['no allow or deny at all', {...overwriteCreated(ROLE_OVERWRITE, '0', '0'), changes: []}, []], + ])('shows %s on an added override', (_label, fixture, rows) => { + expect(present(fixture)).toEqual({ + summary: `Hampus added a permission override for the role @Mods in #${CHANNEL_ID}.`, + rows, + blocks: [], + expandable: rows.length > 0, + }); + }); + + it('caps a long permission list at seven names and a count', () => { + const flags = [ + Permissions.ADD_REACTIONS, + Permissions.VIEW_CHANNEL, + Permissions.SEND_MESSAGES, + Permissions.MANAGE_MESSAGES, + Permissions.EMBED_LINKS, + Permissions.ATTACH_FILES, + Permissions.READ_MESSAGE_HISTORY, + Permissions.CONNECT, + Permissions.SPEAK, + ]; + const presentation = presentAuditLogEntry( + makeEntry(overwriteCreated(MEMBER_OVERWRITE, mask(...flags), '0')), + fakeContext(), + ); + expect(presentation.rows.map((row) => row.sentence.values)).toEqual([{permissions: {kind: 'permissions', flags}}]); + expect(resultToText(presentation, NAMES).rows).toEqual([ + '+ Allowed Add reactions, View channel, Send messages, Manage messages, Embed links, Attach files, Read message history, and 2 more permissions.', + ]); + }); + + it.each<[string, Array, Array]>([ + [ + 'a newly allowed permission', + [change('allow', mask(Permissions.VIEW_CHANNEL), mask(Permissions.VIEW_CHANNEL, Permissions.SEND_MESSAGES))], + ['+ Allowed Send messages.'], + ], + ['a newly denied permission', [change('deny', '0', mask(Permissions.ATTACH_FILES))], ['- Denied Attach files.']], + [ + 'an allowed permission back to default', + [change('allow', mask(Permissions.VIEW_CHANNEL, Permissions.SEND_MESSAGES), mask(Permissions.VIEW_CHANNEL))], + ['~ Removed the override for Send messages.'], + ], + [ + 'a denied permission back to default', + [change('deny', mask(Permissions.ATTACH_FILES), '0')], + ['~ Removed the override for Attach files.'], + ], + [ + 'a flip from allowed to denied', + [change('allow', mask(Permissions.SEND_MESSAGES), '0'), change('deny', '0', mask(Permissions.SEND_MESSAGES))], + ['- Denied Send messages.'], + ], + [ + 'a flip from denied to allowed', + [change('allow', '0', mask(Permissions.SEND_MESSAGES)), change('deny', mask(Permissions.SEND_MESSAGES), '0')], + ['+ Allowed Send messages.'], + ], + [ + 'every kind of change in order', + [ + change('deny', mask(Permissions.EMBED_LINKS), mask(Permissions.SEND_MESSAGES)), + change('allow', mask(Permissions.ATTACH_FILES), mask(Permissions.VIEW_CHANNEL)), + ], + [ + '+ Allowed View channel.', + '- Denied Send messages.', + '~ Removed the override for Embed links and Attach files.', + ], + ], + ['numeric values', [change('allow', 0, Number(Permissions.VIEW_CHANNEL))], ['+ Allowed View channel.']], + ['a change to unknown bits only', [change('allow', '0', UNKNOWN_PERMISSION_BIT.toString())], []], + ['a value it cannot read', [change('allow', mask(Permissions.VIEW_CHANNEL), 'everything')], []], + ])('shows %s on an updated override', (_label, changes, rows) => { + expect(present(overwriteUpdated(ROLE_OVERWRITE, changes))).toEqual({ + summary: `Hampus updated the permission override for the role @Mods in #${CHANNEL_ID}.`, + rows, + blocks: [], + expandable: rows.length > 0, + }); + }); + + it('gives a type flip alone the summary only', () => { + expect(present(overwriteUpdated(MEMBER_OVERWRITE, [change('type', '0', '1')]))).toEqual({ + summary: `Hampus updated the permission override for ender in #${CHANNEL_ID}.`, + rows: [], + blocks: [], + expandable: false, + }); + }); + + it.each<[string, EntryFixture, string, Array]>([ + [ + 'allowed and denied permissions', + overwriteDeleted(ROLE_OVERWRITE, mask(Permissions.VIEW_CHANNEL), mask(Permissions.SEND_MESSAGES)), + `Hampus removed the permission override for the role @Mods from #${CHANNEL_ID}.`, + ['~ The override allowed View channel.', '~ The override denied Send messages.'], + ], + [ + 'allowed permissions', + overwriteDeleted(MEMBER_OVERWRITE, mask(Permissions.VIEW_CHANNEL, Permissions.SEND_MESSAGES), '0'), + `Hampus removed the permission override for ender from #${CHANNEL_ID}.`, + ['~ The override allowed View channel and Send messages.'], + ], + [ + 'numeric denied permissions', + overwriteDeleted(EVERYONE_OVERWRITE, 0, Number(Permissions.VIEW_CHANNEL)), + `Hampus removed the permission override for @everyone from #${CHANNEL_ID}.`, + ['~ The override denied View channel.'], + ], + [ + 'unknown bits only', + overwriteDeleted(EVERYONE_OVERWRITE, UNKNOWN_PERMISSION_BIT.toString(), '0'), + `Hampus removed the permission override for @everyone from #${CHANNEL_ID}.`, + [], + ], + ])('shows %s on a removed override', (_label, fixture, summary, rows) => { + expect(present(fixture)).toEqual({summary, rows, blocks: [], expandable: rows.length > 0}); + }); +}); + +describe('channel presenters on junk input', () => { + it.each<[string, AuditLogActionType]>([ + ['CHANNEL_CREATE', AuditLogActionType.CHANNEL_CREATE], + ['CHANNEL_UPDATE', AuditLogActionType.CHANNEL_UPDATE], + ['CHANNEL_DELETE', AuditLogActionType.CHANNEL_DELETE], + ['CHANNEL_OVERWRITE_CREATE', AuditLogActionType.CHANNEL_OVERWRITE_CREATE], + ['CHANNEL_OVERWRITE_UPDATE', AuditLogActionType.CHANNEL_OVERWRITE_UPDATE], + ['CHANNEL_OVERWRITE_DELETE', AuditLogActionType.CHANNEL_OVERWRITE_DELETE], + ])('never throws for %s', (_name, actionType) => { + const fixtures: Array = [ + {action_type: actionType}, + {action_type: actionType, target_id: null, user_id: null, options: {}, changes: []}, + { + action_type: actionType, + target_id: 'not-a-snowflake', + options: {type: {}, channel_id: 5, role_name: 7}, + changes: [ + {key: 'name'}, + {key: 'type', old_value: [], new_value: {}}, + {key: 'allow', old_value: -1, new_value: 1.5}, + {key: 'deny', new_value: 'NaN'}, + {key: 'parent_id', old_value: 1, new_value: true}, + {key: 'nsfw', new_value: 0}, + {key: 'content_warning_level', old_value: '1', new_value: 'x'}, + {key: 'user_limit', old_value: '10', new_value: -3}, + {key: 'bitrate', old_value: Number.NaN, new_value: '64k'}, + ], + }, + ]; + for (const fixture of fixtures) { + expect(() => present(fixture)).not.toThrow(); + } + }); +}); diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelPresentation.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelPresentation.ts new file mode 100644 index 000000000..2d6718b2a --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelPresentation.ts @@ -0,0 +1,632 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import { + CHANNEL_AUDIO_QUALITY_CHANGED_ROW, + CHANNEL_AUDIO_QUALITY_SET_ROW, + CHANNEL_CONNECTION_LIMIT_CHANGED_ROW, + CHANNEL_CONNECTION_LIMIT_SET_ROW, + CHANNEL_CONTENT_WARNING_ADDED_ROW, + CHANNEL_CONTENT_WARNING_ADDED_WITH_TEXT_ROW, + CHANNEL_CONTENT_WARNING_REMOVED_ROW, + CHANNEL_CONTENT_WARNING_TEXT_CHANGED_ROW, + CHANNEL_CONTENT_WARNING_TEXT_REMOVED_ROW, + CHANNEL_CONTENT_WARNING_TEXT_SET_ROW, + CHANNEL_CREATE_CATEGORY_SUMMARY, + CHANNEL_CREATE_GENERIC_IN_CATEGORY_SUMMARY, + CHANNEL_CREATE_GENERIC_SUMMARY, + CHANNEL_CREATE_LINK_IN_CATEGORY_SUMMARY, + CHANNEL_CREATE_LINK_SUMMARY, + CHANNEL_CREATE_TEXT_IN_CATEGORY_SUMMARY, + CHANNEL_CREATE_TEXT_SUMMARY, + CHANNEL_CREATE_VOICE_IN_CATEGORY_SUMMARY, + CHANNEL_CREATE_VOICE_SUMMARY, + CHANNEL_DELETE_CATEGORY_SUMMARY, + CHANNEL_DELETE_GENERIC_SUMMARY, + CHANNEL_DELETE_LINK_SUMMARY, + CHANNEL_DELETE_TEXT_SUMMARY, + CHANNEL_DELETE_VOICE_SUMMARY, + CHANNEL_LINK_CHANGED_ROW, + CHANNEL_LINK_REMOVED_ROW, + CHANNEL_LINK_SET_ROW, + CHANNEL_MARKED_MATURE_ROW, + CHANNEL_MARKED_NOT_MATURE_ROW, + CHANNEL_MATURE_FOLLOWS_COMMUNITY_ROW, + CHANNEL_MOVED_BETWEEN_CATEGORIES_ROW, + CHANNEL_MOVED_INTO_CATEGORY_ROW, + CHANNEL_MOVED_OUT_OF_CATEGORY_ROW, + CHANNEL_NAME_CHANGED_ROW, + CHANNEL_OVERRIDES_CHANGED_CATEGORY_SUMMARY, + CHANNEL_OVERRIDES_CHANGED_GENERIC_SUMMARY, + CHANNEL_OVERRIDES_CHANGED_LINK_SUMMARY, + CHANNEL_OVERRIDES_CHANGED_TEXT_SUMMARY, + CHANNEL_OVERRIDES_CHANGED_VOICE_SUMMARY, + CHANNEL_OVERWRITE_ALLOWED_ROW, + CHANNEL_OVERWRITE_CREATE_EVERYONE_SUMMARY, + CHANNEL_OVERWRITE_CREATE_MEMBER_SUMMARY, + CHANNEL_OVERWRITE_CREATE_ROLE_SUMMARY, + CHANNEL_OVERWRITE_DELETE_EVERYONE_SUMMARY, + CHANNEL_OVERWRITE_DELETE_MEMBER_SUMMARY, + CHANNEL_OVERWRITE_DELETE_ROLE_SUMMARY, + CHANNEL_OVERWRITE_DENIED_ROW, + CHANNEL_OVERWRITE_REMOVED_ALLOWED_ROW, + CHANNEL_OVERWRITE_REMOVED_DENIED_ROW, + CHANNEL_OVERWRITE_STOPPED_OVERRIDING_ROW, + CHANNEL_OVERWRITE_UPDATE_EVERYONE_SUMMARY, + CHANNEL_OVERWRITE_UPDATE_MEMBER_SUMMARY, + CHANNEL_OVERWRITE_UPDATE_ROLE_SUMMARY, + CHANNEL_RENAME_CATEGORY_SUMMARY, + CHANNEL_RENAME_GENERIC_SUMMARY, + CHANNEL_RENAME_LINK_SUMMARY, + CHANNEL_RENAME_TEXT_SUMMARY, + CHANNEL_RENAME_VOICE_SUMMARY, + CHANNEL_SLOWMODE_CHANGED_ROW, + CHANNEL_SLOWMODE_SET_ROW, + CHANNEL_SLOWMODE_TURNED_OFF_ROW, + CHANNEL_TOPIC_CHANGED_ROW, + CHANNEL_TOPIC_REMOVED_ROW, + CHANNEL_TOPIC_SET_ROW, + CHANNEL_UPDATE_CATEGORY_SUMMARY, + CHANNEL_UPDATE_GENERIC_SUMMARY, + CHANNEL_UPDATE_LINK_SUMMARY, + CHANNEL_UPDATE_TEXT_SUMMARY, + CHANNEL_UPDATE_VOICE_SUMMARY, + CHANNEL_USER_LIMIT_CHANGED_ROW, + CHANNEL_USER_LIMIT_REMOVED_ROW, + CHANNEL_USER_LIMIT_SET_ROW, + CHANNEL_VOICE_REGION_AUTOMATIC_ROW, + CHANNEL_VOICE_REGION_CHANGED_ROW, + CHANNEL_VOICE_REGION_SET_ROW, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages'; +import type { + AuditLogDetailRow, + AuditLogDomainResult, + AuditLogPlaceholder, + AuditLogPresentationContext, + AuditLogSentence, + AuditLogTone, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogPresentationTypes'; +import { + actorPlaceholder, + channelNoun, + diffOverwriteStates, + permissionFlagsIn, + readBitfield, + readBoolean, + readChange, + readNumber, + readOption, + readSnowflake, + readString, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogValues'; +import { + VOICE_CHANNEL_BITRATE_DEFAULT, + VOICE_CHANNEL_CONNECTION_LIMIT_DEFAULT, +} from '@fluxer/constants/src/LimitConstants'; +import type {GuildAuditLogEntryResponse} from '@fluxer/schema/src/domains/guild/GuildAuditLogSchemas'; +import type {MessageDescriptor} from '@lingui/core'; + +type ChannelNoun = ReturnType; +type OverwriteTarget = 'role' | 'member' | 'everyone'; +type Transition = {kind: 'set'; after: T} | {kind: 'changed'; before: T; after: T} | {kind: 'removed'; before: T}; + +const CONTENT_WARNING_LEVEL_ON = 1; +const MEMBER_OVERWRITE_TYPE = 1; +const BITS_PER_KILOBIT = 1000; + +const CREATE_SUMMARIES: Record, MessageDescriptor> = { + text: CHANNEL_CREATE_TEXT_SUMMARY, + voice: CHANNEL_CREATE_VOICE_SUMMARY, + link: CHANNEL_CREATE_LINK_SUMMARY, + generic: CHANNEL_CREATE_GENERIC_SUMMARY, +}; + +const CREATE_IN_CATEGORY_SUMMARIES: Record, MessageDescriptor> = { + text: CHANNEL_CREATE_TEXT_IN_CATEGORY_SUMMARY, + voice: CHANNEL_CREATE_VOICE_IN_CATEGORY_SUMMARY, + link: CHANNEL_CREATE_LINK_IN_CATEGORY_SUMMARY, + generic: CHANNEL_CREATE_GENERIC_IN_CATEGORY_SUMMARY, +}; + +const RENAME_SUMMARIES: Record = { + text: CHANNEL_RENAME_TEXT_SUMMARY, + voice: CHANNEL_RENAME_VOICE_SUMMARY, + link: CHANNEL_RENAME_LINK_SUMMARY, + category: CHANNEL_RENAME_CATEGORY_SUMMARY, + generic: CHANNEL_RENAME_GENERIC_SUMMARY, +}; + +const OVERRIDES_CHANGED_SUMMARIES: Record = { + text: CHANNEL_OVERRIDES_CHANGED_TEXT_SUMMARY, + voice: CHANNEL_OVERRIDES_CHANGED_VOICE_SUMMARY, + link: CHANNEL_OVERRIDES_CHANGED_LINK_SUMMARY, + category: CHANNEL_OVERRIDES_CHANGED_CATEGORY_SUMMARY, + generic: CHANNEL_OVERRIDES_CHANGED_GENERIC_SUMMARY, +}; + +const UPDATE_SUMMARIES: Record = { + text: CHANNEL_UPDATE_TEXT_SUMMARY, + voice: CHANNEL_UPDATE_VOICE_SUMMARY, + link: CHANNEL_UPDATE_LINK_SUMMARY, + category: CHANNEL_UPDATE_CATEGORY_SUMMARY, + generic: CHANNEL_UPDATE_GENERIC_SUMMARY, +}; + +const DELETE_SUMMARIES: Record = { + text: CHANNEL_DELETE_TEXT_SUMMARY, + voice: CHANNEL_DELETE_VOICE_SUMMARY, + link: CHANNEL_DELETE_LINK_SUMMARY, + category: CHANNEL_DELETE_CATEGORY_SUMMARY, + generic: CHANNEL_DELETE_GENERIC_SUMMARY, +}; + +const OVERWRITE_CREATE_SUMMARIES: Record = { + role: CHANNEL_OVERWRITE_CREATE_ROLE_SUMMARY, + member: CHANNEL_OVERWRITE_CREATE_MEMBER_SUMMARY, + everyone: CHANNEL_OVERWRITE_CREATE_EVERYONE_SUMMARY, +}; + +const OVERWRITE_UPDATE_SUMMARIES: Record = { + role: CHANNEL_OVERWRITE_UPDATE_ROLE_SUMMARY, + member: CHANNEL_OVERWRITE_UPDATE_MEMBER_SUMMARY, + everyone: CHANNEL_OVERWRITE_UPDATE_EVERYONE_SUMMARY, +}; + +const OVERWRITE_DELETE_SUMMARIES: Record = { + role: CHANNEL_OVERWRITE_DELETE_ROLE_SUMMARY, + member: CHANNEL_OVERWRITE_DELETE_MEMBER_SUMMARY, + everyone: CHANNEL_OVERWRITE_DELETE_EVERYONE_SUMMARY, +}; + +function row( + id: string, + tone: AuditLogTone, + descriptor: MessageDescriptor, + values: AuditLogSentence['values'] = {}, +): AuditLogDetailRow { + return {id, tone, sentence: {descriptor, values}}; +} + +function compactRows(candidates: ReadonlyArray): Array { + return candidates.filter((candidate): candidate is AuditLogDetailRow => candidate !== null); +} + +function channelPlaceholder(id: string | null, recordedName: string | null, noun: ChannelNoun): AuditLogPlaceholder { + return {kind: 'channel', id: id ?? '', recordedName, fallback: noun === 'category' ? 'category' : 'channel'}; +} + +function categoryPlaceholder(id: string): AuditLogPlaceholder { + return {kind: 'channel', id, recordedName: null, fallback: 'category'}; +} + +function readTransition( + entry: GuildAuditLogEntryResponse, + key: string, + reader: (value: unknown) => T | null, +): Transition | null { + const change = readChange(entry, key); + if (change === null) return null; + const before = reader(change.oldValue); + const after = reader(change.newValue); + if (before === null) return after === null ? null : {kind: 'set', after}; + if (after === null) return {kind: 'removed', before}; + return before === after ? null : {kind: 'changed', before, after}; +} + +function readNsfwOverride(value: unknown): boolean | null | undefined { + return value === null ? null : (readBoolean(value) ?? undefined); +} + +function maturityRow(nsfw: boolean): AuditLogDetailRow { + return nsfw ? row('nsfw', 'add', CHANNEL_MARKED_MATURE_ROW) : row('nsfw', 'remove', CHANNEL_MARKED_NOT_MATURE_ROW); +} + +function addedContentWarningRow(text: string | null): AuditLogDetailRow { + return text === null + ? row('content_warning', 'add', CHANNEL_CONTENT_WARNING_ADDED_ROW) + : row('content_warning', 'add', CHANNEL_CONTENT_WARNING_ADDED_WITH_TEXT_ROW, {text: {kind: 'text', value: text}}); +} + +function createSummary(entry: GuildAuditLogEntryResponse, noun: ChannelNoun): AuditLogSentence { + const actor = actorPlaceholder(entry); + const channel = channelPlaceholder( + readSnowflake(entry.target_id), + readString(readChange(entry, 'name')?.newValue), + noun, + ); + if (noun === 'category') return {descriptor: CHANNEL_CREATE_CATEGORY_SUMMARY, values: {actor, channel}}; + const categoryId = readSnowflake(readChange(entry, 'parent_id')?.newValue); + if (categoryId === null) return {descriptor: CREATE_SUMMARIES[noun], values: {actor, channel}}; + return { + descriptor: CREATE_IN_CATEGORY_SUMMARIES[noun], + values: {actor, channel, category: categoryPlaceholder(categoryId)}, + }; +} + +function createRows(entry: GuildAuditLogEntryResponse, noun: ChannelNoun): Array { + const created = (key: string): unknown => readChange(entry, key)?.newValue; + const isVoice = noun === 'voice'; + const url = noun === 'link' ? readString(created('url')) : null; + const topic = noun === 'text' || isVoice || noun === 'link' ? readString(created('topic')) : null; + const nsfw = readBoolean(created('nsfw')); + const warningLevel = noun === 'category' ? null : readNumber(created('content_warning_level')); + const slowmode = noun === 'text' || isVoice ? readNumber(created('rate_limit_per_user')) : null; + const bitrate = isVoice ? readNumber(created('bitrate')) : null; + const userLimit = isVoice ? readNumber(created('user_limit')) : null; + const connectionLimit = isVoice ? readNumber(created('voice_connection_limit')) : null; + const region = isVoice ? readString(created('rtc_region')) : null; + return compactRows([ + url === null ? null : row('url', 'neutral', CHANNEL_LINK_SET_ROW, {url: {kind: 'text', value: url}}), + topic === null ? null : row('topic', 'neutral', CHANNEL_TOPIC_SET_ROW, {text: {kind: 'text', value: topic}}), + nsfw === null ? null : maturityRow(nsfw), + warningLevel === CONTENT_WARNING_LEVEL_ON + ? addedContentWarningRow(readString(created('content_warning_text'))) + : null, + slowmode !== null && slowmode > 0 + ? row('rate_limit_per_user', 'neutral', CHANNEL_SLOWMODE_SET_ROW, { + duration: {kind: 'duration', seconds: slowmode}, + }) + : null, + bitrate !== null && bitrate > 0 && bitrate !== VOICE_CHANNEL_BITRATE_DEFAULT + ? row('bitrate', 'neutral', CHANNEL_AUDIO_QUALITY_SET_ROW, {kbps: bitrate / BITS_PER_KILOBIT}) + : null, + userLimit !== null && userLimit > 0 + ? row('user_limit', 'neutral', CHANNEL_USER_LIMIT_SET_ROW, {count: userLimit}) + : null, + connectionLimit !== null && connectionLimit !== VOICE_CHANNEL_CONNECTION_LIMIT_DEFAULT + ? row('voice_connection_limit', 'neutral', CHANNEL_CONNECTION_LIMIT_SET_ROW, {count: connectionLimit}) + : null, + region === null + ? null + : row('rtc_region', 'neutral', CHANNEL_VOICE_REGION_SET_ROW, {region: {kind: 'name', value: region}}), + ]); +} + +export function presentChannelCreate(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + const noun = channelNoun(readNumber(readChange(entry, 'type')?.newValue) ?? readNumber(readOption(entry, 'type'))); + return {summary: createSummary(entry, noun), rows: createRows(entry, noun), blocks: []}; +} + +function nameRow(name: Transition | null): AuditLogDetailRow | null { + if (name?.kind !== 'changed') return null; + return row('name', 'neutral', CHANNEL_NAME_CHANGED_ROW, { + oldName: {kind: 'name', value: name.before}, + newName: {kind: 'name', value: name.after}, + }); +} + +function parentRow(entry: GuildAuditLogEntryResponse): AuditLogDetailRow | null { + const parent = readTransition(entry, 'parent_id', readSnowflake); + if (parent === null) return null; + switch (parent.kind) { + case 'set': + return row('parent_id', 'neutral', CHANNEL_MOVED_INTO_CATEGORY_ROW, { + category: categoryPlaceholder(parent.after), + }); + case 'removed': + return row('parent_id', 'neutral', CHANNEL_MOVED_OUT_OF_CATEGORY_ROW, { + category: categoryPlaceholder(parent.before), + }); + case 'changed': + return row('parent_id', 'neutral', CHANNEL_MOVED_BETWEEN_CATEGORIES_ROW, { + oldCategory: categoryPlaceholder(parent.before), + newCategory: categoryPlaceholder(parent.after), + }); + } +} + +function urlRow(entry: GuildAuditLogEntryResponse): AuditLogDetailRow | null { + const url = readTransition(entry, 'url', readString); + if (url === null) return null; + switch (url.kind) { + case 'set': + return row('url', 'add', CHANNEL_LINK_SET_ROW, {url: {kind: 'text', value: url.after}}); + case 'changed': + return row('url', 'neutral', CHANNEL_LINK_CHANGED_ROW, { + oldUrl: {kind: 'text', value: url.before}, + newUrl: {kind: 'text', value: url.after}, + }); + case 'removed': + return row('url', 'remove', CHANNEL_LINK_REMOVED_ROW); + } +} + +function topicRow(entry: GuildAuditLogEntryResponse): AuditLogDetailRow | null { + const topic = readTransition(entry, 'topic', readString); + if (topic === null) return null; + switch (topic.kind) { + case 'set': + return row('topic', 'add', CHANNEL_TOPIC_SET_ROW, {text: {kind: 'text', value: topic.after}}); + case 'changed': + return row('topic', 'neutral', CHANNEL_TOPIC_CHANGED_ROW, { + oldText: {kind: 'text', value: topic.before}, + newText: {kind: 'text', value: topic.after}, + }); + case 'removed': + return row('topic', 'remove', CHANNEL_TOPIC_REMOVED_ROW, {text: {kind: 'text', value: topic.before}}); + } +} + +function nsfwRow(entry: GuildAuditLogEntryResponse): AuditLogDetailRow | null { + const nsfw = readChange(entry, 'nsfw'); + if (nsfw === null) return null; + const after = readNsfwOverride(nsfw.newValue); + if (after === undefined || after === readNsfwOverride(nsfw.oldValue)) return null; + return after === null ? row('nsfw', 'neutral', CHANNEL_MATURE_FOLLOWS_COMMUNITY_ROW) : maturityRow(after); +} + +function contentWarningRow(entry: GuildAuditLogEntryResponse): AuditLogDetailRow | null { + const level = readChange(entry, 'content_warning_level'); + const levelBefore = readNumber(level?.oldValue); + const levelAfter = readNumber(level?.newValue); + if (levelAfter === CONTENT_WARNING_LEVEL_ON && levelBefore !== CONTENT_WARNING_LEVEL_ON) { + return addedContentWarningRow(readString(readChange(entry, 'content_warning_text')?.newValue)); + } + if (levelBefore === CONTENT_WARNING_LEVEL_ON && levelAfter !== CONTENT_WARNING_LEVEL_ON) { + return row('content_warning', 'remove', CHANNEL_CONTENT_WARNING_REMOVED_ROW); + } + const text = readTransition(entry, 'content_warning_text', readString); + if (text === null) return null; + switch (text.kind) { + case 'set': + return row('content_warning', 'neutral', CHANNEL_CONTENT_WARNING_TEXT_SET_ROW, { + text: {kind: 'text', value: text.after}, + }); + case 'changed': + return row('content_warning', 'neutral', CHANNEL_CONTENT_WARNING_TEXT_CHANGED_ROW, { + oldText: {kind: 'text', value: text.before}, + newText: {kind: 'text', value: text.after}, + }); + case 'removed': + return row('content_warning', 'neutral', CHANNEL_CONTENT_WARNING_TEXT_REMOVED_ROW); + } +} + +function slowmodeRow(entry: GuildAuditLogEntryResponse): AuditLogDetailRow | null { + const slowmode = readTransition(entry, 'rate_limit_per_user', readNumber); + if (slowmode?.kind !== 'changed') return null; + const {before, after} = slowmode; + if (before === 0 && after > 0) { + return row('rate_limit_per_user', 'add', CHANNEL_SLOWMODE_SET_ROW, {duration: {kind: 'duration', seconds: after}}); + } + if (before > 0 && after === 0) return row('rate_limit_per_user', 'remove', CHANNEL_SLOWMODE_TURNED_OFF_ROW); + if (before > 0 && after > 0) { + return row('rate_limit_per_user', 'neutral', CHANNEL_SLOWMODE_CHANGED_ROW, { + oldDuration: {kind: 'duration', seconds: before}, + newDuration: {kind: 'duration', seconds: after}, + }); + } + return null; +} + +function bitrateRow(entry: GuildAuditLogEntryResponse): AuditLogDetailRow | null { + const bitrate = readTransition(entry, 'bitrate', readNumber); + if (bitrate?.kind !== 'changed' || bitrate.before <= 0 || bitrate.after <= 0) return null; + return row('bitrate', 'neutral', CHANNEL_AUDIO_QUALITY_CHANGED_ROW, { + oldKbps: bitrate.before / BITS_PER_KILOBIT, + newKbps: bitrate.after / BITS_PER_KILOBIT, + }); +} + +function userLimitRow(entry: GuildAuditLogEntryResponse): AuditLogDetailRow | null { + const userLimit = readTransition(entry, 'user_limit', readNumber); + if (userLimit?.kind !== 'changed') return null; + const {before, after} = userLimit; + if (before === 0 && after > 0) return row('user_limit', 'neutral', CHANNEL_USER_LIMIT_SET_ROW, {count: after}); + if (before > 0 && after === 0) return row('user_limit', 'neutral', CHANNEL_USER_LIMIT_REMOVED_ROW); + if (before > 0 && after > 0) { + return row('user_limit', 'neutral', CHANNEL_USER_LIMIT_CHANGED_ROW, {oldCount: before, newCount: after}); + } + return null; +} + +function connectionLimitRow(entry: GuildAuditLogEntryResponse): AuditLogDetailRow | null { + const connectionLimit = readTransition(entry, 'voice_connection_limit', readNumber); + if (connectionLimit?.kind !== 'changed') return null; + return row('voice_connection_limit', 'neutral', CHANNEL_CONNECTION_LIMIT_CHANGED_ROW, { + oldCount: connectionLimit.before, + newCount: connectionLimit.after, + }); +} + +function voiceRegionRow(entry: GuildAuditLogEntryResponse): AuditLogDetailRow | null { + const region = readTransition(entry, 'rtc_region', readString); + if (region === null) return null; + switch (region.kind) { + case 'set': + return row('rtc_region', 'neutral', CHANNEL_VOICE_REGION_SET_ROW, {region: {kind: 'name', value: region.after}}); + case 'changed': + return row('rtc_region', 'neutral', CHANNEL_VOICE_REGION_CHANGED_ROW, { + oldRegion: {kind: 'name', value: region.before}, + newRegion: {kind: 'name', value: region.after}, + }); + case 'removed': + return row('rtc_region', 'neutral', CHANNEL_VOICE_REGION_AUTOMATIC_ROW); + } +} + +export function presentChannelUpdate(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + const noun = channelNoun(readNumber(readOption(entry, 'type'))); + const actor = actorPlaceholder(entry); + const name = readTransition(entry, 'name', readString); + const rows = compactRows([ + nameRow(name), + parentRow(entry), + urlRow(entry), + topicRow(entry), + nsfwRow(entry), + contentWarningRow(entry), + slowmodeRow(entry), + bitrateRow(entry), + userLimitRow(entry), + connectionLimitRow(entry), + voiceRegionRow(entry), + ]); + const overridesChanged = readTransition(entry, 'permission_overwrite_count', readNumber)?.kind === 'changed'; + if (name?.kind === 'changed' && rows.length === 1 && !overridesChanged) { + return { + summary: { + descriptor: RENAME_SUMMARIES[noun], + values: {actor, oldName: {kind: 'name', value: name.before}, newName: {kind: 'name', value: name.after}}, + }, + rows: [], + blocks: [], + }; + } + const channel = channelPlaceholder( + readSnowflake(entry.target_id), + readString(readChange(entry, 'name')?.newValue), + noun, + ); + if (rows.length === 0 && overridesChanged) { + return {summary: {descriptor: OVERRIDES_CHANGED_SUMMARIES[noun], values: {actor, channel}}, rows: [], blocks: []}; + } + return {summary: {descriptor: UPDATE_SUMMARIES[noun], values: {actor, channel}}, rows, blocks: []}; +} + +export function presentChannelDelete(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + const noun = channelNoun(readNumber(readOption(entry, 'type')) ?? readNumber(readChange(entry, 'type')?.oldValue)); + const channel = channelPlaceholder( + readSnowflake(entry.target_id), + readString(readChange(entry, 'name')?.oldValue), + noun, + ); + return { + summary: {descriptor: DELETE_SUMMARIES[noun], values: {actor: actorPlaceholder(entry), channel}}, + rows: [], + blocks: [], + }; +} + +function overwriteTarget(entry: GuildAuditLogEntryResponse, context: AuditLogPresentationContext): OverwriteTarget { + const typeChange = readChange(entry, 'type'); + const overwriteType = + readNumber(readOption(entry, 'type')) ?? readNumber(typeChange?.newValue) ?? readNumber(typeChange?.oldValue); + if (overwriteType === MEMBER_OVERWRITE_TYPE) return 'member'; + return entry.target_id === context.guildId ? 'everyone' : 'role'; +} + +function overwriteSummary( + entry: GuildAuditLogEntryResponse, + context: AuditLogPresentationContext, + summaries: Record, +): AuditLogSentence { + const actor = actorPlaceholder(entry); + const targetId = readSnowflake(entry.target_id) ?? ''; + const channel: AuditLogPlaceholder = { + kind: 'channel', + id: readSnowflake(readOption(entry, 'channel_id')) ?? '', + recordedName: null, + fallback: 'channel', + }; + switch (overwriteTarget(entry, context)) { + case 'role': + return { + descriptor: summaries.role, + values: { + actor, + role: {kind: 'role', id: targetId, recordedName: readString(readOption(entry, 'role_name'))}, + channel, + }, + }; + case 'member': + return {descriptor: summaries.member, values: {actor, user: {kind: 'user', id: targetId}, channel}}; + case 'everyone': + return {descriptor: summaries.everyone, values: {actor, channel}}; + } +} + +function readOverwriteMask(value: unknown): bigint | null { + return value === null || value === undefined ? 0n : readBitfield(value); +} + +function permissionFlagsInValue(value: unknown): Array { + const mask = readOverwriteMask(value); + return mask === null ? [] : permissionFlagsIn(mask); +} + +function permissionsRow( + id: string, + tone: AuditLogTone, + descriptor: MessageDescriptor, + flags: Array, +): AuditLogDetailRow | null { + return flags.length === 0 ? null : row(id, tone, descriptor, {permissions: {kind: 'permissions', flags}}); +} + +export function presentChannelOverwriteCreate( + entry: GuildAuditLogEntryResponse, + context: AuditLogPresentationContext, +): AuditLogDomainResult { + return { + summary: overwriteSummary(entry, context, OVERWRITE_CREATE_SUMMARIES), + rows: compactRows([ + permissionsRow( + 'allow', + 'add', + CHANNEL_OVERWRITE_ALLOWED_ROW, + permissionFlagsInValue(readChange(entry, 'allow')?.newValue), + ), + permissionsRow( + 'deny', + 'remove', + CHANNEL_OVERWRITE_DENIED_ROW, + permissionFlagsInValue(readChange(entry, 'deny')?.newValue), + ), + ]), + blocks: [], + }; +} + +function overwriteUpdateRows(entry: GuildAuditLogEntryResponse): Array { + const allow = readChange(entry, 'allow'); + const deny = readChange(entry, 'deny'); + const previousAllow = readOverwriteMask(allow?.oldValue); + const previousDeny = readOverwriteMask(deny?.oldValue); + const nextAllow = readOverwriteMask(allow?.newValue); + const nextDeny = readOverwriteMask(deny?.newValue); + if (previousAllow === null || previousDeny === null || nextAllow === null || nextDeny === null) return []; + const {allowed, denied, cleared} = diffOverwriteStates( + {allow: previousAllow, deny: previousDeny}, + {allow: nextAllow, deny: nextDeny}, + ); + return compactRows([ + permissionsRow('allowed', 'add', CHANNEL_OVERWRITE_ALLOWED_ROW, allowed), + permissionsRow('denied', 'remove', CHANNEL_OVERWRITE_DENIED_ROW, denied), + permissionsRow('cleared', 'neutral', CHANNEL_OVERWRITE_STOPPED_OVERRIDING_ROW, cleared), + ]); +} + +export function presentChannelOverwriteUpdate( + entry: GuildAuditLogEntryResponse, + context: AuditLogPresentationContext, +): AuditLogDomainResult { + return { + summary: overwriteSummary(entry, context, OVERWRITE_UPDATE_SUMMARIES), + rows: overwriteUpdateRows(entry), + blocks: [], + }; +} + +export function presentChannelOverwriteDelete( + entry: GuildAuditLogEntryResponse, + context: AuditLogPresentationContext, +): AuditLogDomainResult { + return { + summary: overwriteSummary(entry, context, OVERWRITE_DELETE_SUMMARIES), + rows: compactRows([ + permissionsRow( + 'allow', + 'neutral', + CHANNEL_OVERWRITE_REMOVED_ALLOWED_ROW, + permissionFlagsInValue(readChange(entry, 'allow')?.oldValue), + ), + permissionsRow( + 'deny', + 'neutral', + CHANNEL_OVERWRITE_REMOVED_DENIED_ROW, + permissionFlagsInValue(readChange(entry, 'deny')?.oldValue), + ), + ]), + blocks: [], + }; +} diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts new file mode 100644 index 000000000..a00fc5785 --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts @@ -0,0 +1,154 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {msg} from '@lingui/core/macro'; + +export const EMOJI_CREATE_SUMMARY = msg({ + message: '{actor} added the emoji {emoji}.', + comment: + 'Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:.', +}); +export const EMOJI_CREATE_UNNAMED_SUMMARY = msg({ + message: '{actor} added an emoji.', + comment: + 'Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System.', +}); +export const EMOJI_RENAME_SUMMARY = msg({ + message: '{actor} renamed the emoji {oldEmoji} to {newEmoji}.', + comment: + 'Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists.', +}); +export const EMOJI_UPDATE_SUMMARY = msg({ + message: '{actor} updated the emoji {emoji}.', + comment: + 'Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:.', +}); +export const EMOJI_UPDATE_UNNAMED_SUMMARY = msg({ + message: '{actor} updated an emoji.', + comment: + 'Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System.', +}); +export const EMOJI_DELETE_SUMMARY = msg({ + message: '{actor} deleted the emoji {emoji}.', + comment: + 'Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image.', +}); +export const EMOJI_DELETE_UNNAMED_SUMMARY = msg({ + message: '{actor} deleted an emoji.', + comment: + 'Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System.', +}); +export const EMOJI_UPLOADER_ROW = msg({ + message: 'The emoji was uploaded by {user}.', + comment: + 'Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip.', +}); +export const STICKER_CREATE_SUMMARY = msg({ + message: '{actor} added the sticker {name}.', + comment: + 'Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or .', +}); +export const STICKER_CREATE_UNNAMED_SUMMARY = msg({ + message: '{actor} added a sticker.', + comment: + 'Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System.', +}); +export const STICKER_DESCRIPTION_SET_ROW = msg({ + message: 'Set the description to {text}.', + comment: + 'Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text.', +}); +export const STICKER_RENAME_SUMMARY = msg({ + message: '{actor} renamed the sticker {oldName} to {newName}.', + comment: + 'Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or .', +}); +export const STICKER_UPDATE_SUMMARY = msg({ + message: '{actor} updated the sticker {name}.', + comment: + 'Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or .', +}); +export const STICKER_UPDATE_UNNAMED_SUMMARY = msg({ + message: '{actor} updated a sticker.', + comment: + 'Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System.', +}); +export const STICKER_NAME_CHANGED_ROW = msg({ + message: 'Changed the name from {oldName} to {newName}.', + comment: + 'Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or .', +}); +export const STICKER_DESCRIPTION_CHANGED_ROW = msg({ + message: 'Changed the description from {oldText} to {newText}.', + comment: + 'Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text.', +}); +export const STICKER_DESCRIPTION_REMOVED_ROW = msg({ + message: 'Removed the description {text}.', + comment: + 'Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text.', +}); +export const STICKER_DELETE_SUMMARY = msg({ + message: '{actor} deleted the sticker {name}.', + comment: + 'Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or .', +}); +export const STICKER_DELETE_UNNAMED_SUMMARY = msg({ + message: '{actor} deleted a sticker.', + comment: + 'Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System.', +}); +export const STICKER_UPLOADER_ROW = msg({ + message: 'The sticker was uploaded by {user}.', + comment: + 'Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip.', +}); +export const MESSAGE_DELETE_IN_CHANNEL_SUMMARY = msg({ + message: '{actor} deleted a message in {channel}.', + comment: + 'Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists.', +}); +export const MESSAGE_DELETE_SUMMARY = msg({ + message: '{actor} deleted a message.', + comment: + 'Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System.', +}); +export const MESSAGE_BULK_DELETE_IN_CHANNEL_SUMMARY = msg({ + message: '{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}.', + comment: + 'Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists.', +}); +export const MESSAGE_BULK_DELETE_SUMMARY = msg({ + message: '{actor} deleted {count, plural, one {# message} other {# messages}}.', + comment: + 'Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number.', +}); +export const MESSAGE_BULK_DELETE_UNCOUNTED_IN_CHANNEL_SUMMARY = msg({ + message: '{actor} deleted some messages in {channel}.', + comment: + 'Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists.', +}); +export const MESSAGE_BULK_DELETE_UNCOUNTED_SUMMARY = msg({ + message: '{actor} deleted some messages.', + comment: + 'Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System.', +}); +export const MESSAGE_PIN_IN_CHANNEL_SUMMARY = msg({ + message: '{actor} pinned a message in {channel}.', + comment: + 'Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists.', +}); +export const MESSAGE_PIN_SUMMARY = msg({ + message: '{actor} pinned a message.', + comment: + 'Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System.', +}); +export const MESSAGE_UNPIN_IN_CHANNEL_SUMMARY = msg({ + message: '{actor} unpinned a message in {channel}.', + comment: + 'Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists.', +}); +export const MESSAGE_UNPIN_SUMMARY = msg({ + message: '{actor} unpinned a message.', + comment: + 'Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System.', +}); diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessagePresentation.test.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessagePresentation.test.ts new file mode 100644 index 000000000..506d4d57d --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessagePresentation.test.ts @@ -0,0 +1,645 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {presentAuditLogEntry} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogPresentation'; +import type {AuditLogPresentationContext} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogPresentationTypes'; +import { + fakeContext, + makeEntry, + resultToText, + TEST_ACTOR_ID, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogTestUtils'; +import {AuditLogActionType} from '@fluxer/constants/src/AuditLogActionType'; +import {describe, expect, it, vi} from 'vitest'; + +vi.mock('@lingui/core/macro', () => { + const descriptor = (value: unknown): unknown => (typeof value === 'string' ? {message: value} : value); + return {msg: descriptor, t: descriptor, plural: () => '', select: () => '', selectOrdinal: () => ''}; +}); + +vi.mock('@app/features/app/config/Config', () => ({ + default: { + PUBLIC_BUILD_VERSION: 'test', + PUBLIC_RELEASE_CHANNEL: 'canary', + PUBLIC_BOOTSTRAP_API_ENDPOINT: 'https://example.invalid', + PUBLIC_BOOTSTRAP_API_PUBLIC_ENDPOINT: 'https://example.invalid', + }, +})); + +type EntryFixture = Parameters[0]; + +const OTHER_USER_ID = '1400000000000000100'; +const EMOJI_ID = '1400000000000000200'; +const STICKER_ID = '1400000000000000300'; +const CHANNEL_ID = '1400000000000000400'; +const MESSAGE_ID = '1400000000000000500'; +const USER_NAMES = {[TEST_ACTOR_ID]: 'Hampus', [OTHER_USER_ID]: 'ender'}; +const EXPRESSION_MESSAGE_ACTION_TYPES = [ + AuditLogActionType.EMOJI_CREATE, + AuditLogActionType.EMOJI_UPDATE, + AuditLogActionType.EMOJI_DELETE, + AuditLogActionType.STICKER_CREATE, + AuditLogActionType.STICKER_UPDATE, + AuditLogActionType.STICKER_DELETE, + AuditLogActionType.MESSAGE_DELETE, + AuditLogActionType.MESSAGE_BULK_DELETE, + AuditLogActionType.MESSAGE_PIN, + AuditLogActionType.MESSAGE_UNPIN, +]; + +function present(fixture: EntryFixture, context: AuditLogPresentationContext = fakeContext()) { + const presentation = presentAuditLogEntry(makeEntry(fixture), context); + return {...resultToText(presentation, USER_NAMES), expandable: presentation.expandable}; +} + +function summaryOnly(summary: string) { + return {summary, rows: [], blocks: [], expandable: false}; +} + +function emojiSnapshot(side: 'old_value' | 'new_value', name: unknown, creatorId: unknown = TEST_ACTOR_ID) { + return [ + {key: 'emoji_id', [side]: EMOJI_ID}, + {key: 'name', [side]: name}, + {key: 'animated', [side]: false}, + {key: 'creator_id', [side]: creatorId}, + ]; +} + +function stickerSnapshot( + side: 'old_value' | 'new_value', + name: unknown, + description: unknown, + creatorId: unknown = TEST_ACTOR_ID, +) { + return [ + {key: 'sticker_id', [side]: STICKER_ID}, + {key: 'name', [side]: name}, + {key: 'description', [side]: description}, + {key: 'animated', [side]: true}, + {key: 'creator_id', [side]: creatorId}, + ]; +} + +describe('presentEmojiCreate', () => { + it('names the added emoji from the snapshot and shows its image by id', () => { + const fixture = { + action_type: AuditLogActionType.EMOJI_CREATE, + target_id: EMOJI_ID, + changes: emojiSnapshot('new_value', 'blobcat'), + }; + expect(present(fixture)).toEqual(summaryOnly('Hampus added the emoji :blobcat:.')); + expect(presentAuditLogEntry(makeEntry(fixture), fakeContext()).summary.values.emoji).toEqual({ + kind: 'emoji', + id: EMOJI_ID, + name: 'blobcat', + }); + }); + + it('uses the unnamed summary when the name is missing, blank or not a string', () => { + for (const name of [undefined, null, ' ', 42]) { + expect( + present({ + action_type: AuditLogActionType.EMOJI_CREATE, + target_id: EMOJI_ID, + changes: emojiSnapshot('new_value', name), + }), + ).toEqual(summaryOnly('Hampus added an emoji.')); + } + expect(present({action_type: AuditLogActionType.EMOJI_CREATE, target_id: EMOJI_ID})).toEqual( + summaryOnly('Hampus added an emoji.'), + ); + }); + + it('keeps the name but drops the image id when the target is not a snowflake', () => { + const presentation = presentAuditLogEntry( + makeEntry({ + action_type: AuditLogActionType.EMOJI_CREATE, + target_id: 'blobcat', + changes: emojiSnapshot('new_value', 'blobcat'), + }), + fakeContext(), + ); + expect(presentation.summary.values.emoji).toEqual({kind: 'emoji', id: null, name: 'blobcat'}); + }); + + it('is expandable only for the Reason block', () => { + expect( + present({ + action_type: AuditLogActionType.EMOJI_CREATE, + target_id: EMOJI_ID, + reason: 'Event%20emoji', + changes: emojiSnapshot('new_value', 'blobcat'), + }), + ).toEqual({ + summary: 'Hampus added the emoji :blobcat:.', + rows: [], + blocks: [{kind: 'reason', text: 'Event emoji'}], + expandable: true, + }); + }); +}); + +describe('presentEmojiUpdate', () => { + it('renames from the old name without an image to the new emoji', () => { + const fixture = { + action_type: AuditLogActionType.EMOJI_UPDATE, + target_id: EMOJI_ID, + changes: [{key: 'name', old_value: 'blob', new_value: 'blobcat'}], + }; + expect(present(fixture, fakeContext({emojis: {[EMOJI_ID]: 'ignored'}}))).toEqual( + summaryOnly('Hampus renamed the emoji :blob: to :blobcat:.'), + ); + const {values} = presentAuditLogEntry(makeEntry(fixture), fakeContext()).summary; + expect(values.oldEmoji).toEqual({kind: 'emoji', id: null, name: 'blob'}); + expect(values.newEmoji).toEqual({kind: 'emoji', id: EMOJI_ID, name: 'blobcat'}); + }); + + it('names a legacy no-op from the emoji store', () => { + expect( + present( + {action_type: AuditLogActionType.EMOJI_UPDATE, target_id: EMOJI_ID}, + fakeContext({emojis: {[EMOJI_ID]: 'blobcat'}}), + ), + ).toEqual(summaryOnly('Hampus updated the emoji :blobcat:.')); + }); + + it('uses the unnamed summary for a legacy no-op the emoji store does not know', () => { + expect(present({action_type: AuditLogActionType.EMOJI_UPDATE, target_id: EMOJI_ID})).toEqual( + summaryOnly('Hampus updated an emoji.'), + ); + expect( + present( + {action_type: AuditLogActionType.EMOJI_UPDATE, target_id: null}, + fakeContext({emojis: {[EMOJI_ID]: 'blobcat'}}), + ), + ).toEqual(summaryOnly('Hampus updated an emoji.')); + }); + + it('treats names that are equal after trimming as no rename', () => { + expect( + present({ + action_type: AuditLogActionType.EMOJI_UPDATE, + target_id: EMOJI_ID, + changes: [{key: 'name', old_value: 'blobcat ', new_value: 'blobcat'}], + }), + ).toEqual(summaryOnly('Hampus updated the emoji :blobcat:.')); + }); + + it('names the emoji from the recorded new name when the old name is unreadable', () => { + expect( + present( + { + action_type: AuditLogActionType.EMOJI_UPDATE, + target_id: EMOJI_ID, + changes: [{key: 'name', old_value: null, new_value: 'blobcat'}], + }, + fakeContext({emojis: {[EMOJI_ID]: 'stale'}}), + ), + ).toEqual(summaryOnly('Hampus updated the emoji :blobcat:.')); + }); +}); + +describe('presentEmojiDelete', () => { + it('shows no rows when the actor uploaded the emoji', () => { + const fixture = { + action_type: AuditLogActionType.EMOJI_DELETE, + target_id: EMOJI_ID, + changes: emojiSnapshot('old_value', 'blobcat'), + }; + expect(present(fixture)).toEqual(summaryOnly('Hampus deleted the emoji :blobcat:.')); + expect(presentAuditLogEntry(makeEntry(fixture), fakeContext()).summary.values.emoji).toEqual({ + kind: 'emoji', + id: null, + name: 'blobcat', + }); + }); + + it('names the uploader when someone else uploaded the emoji', () => { + expect( + present({ + action_type: AuditLogActionType.EMOJI_DELETE, + target_id: EMOJI_ID, + changes: emojiSnapshot('old_value', 'blobcat', OTHER_USER_ID), + }), + ).toEqual({ + summary: 'Hampus deleted the emoji :blobcat:.', + rows: ['~ The emoji was uploaded by ender.'], + blocks: [], + expandable: true, + }); + }); + + it('names the uploader when the system deleted the emoji', () => { + expect( + present({ + action_type: AuditLogActionType.EMOJI_DELETE, + user_id: '0', + target_id: EMOJI_ID, + changes: emojiSnapshot('old_value', 'blobcat', TEST_ACTOR_ID), + }), + ).toEqual({ + summary: 'System deleted the emoji :blobcat:.', + rows: ['~ The emoji was uploaded by Hampus.'], + blocks: [], + expandable: true, + }); + }); + + it('omits the uploader row when the uploader is not a snowflake, and the name when it is missing', () => { + for (const creatorId of [null, 1400, 'ender', '']) { + expect( + present({ + action_type: AuditLogActionType.EMOJI_DELETE, + target_id: EMOJI_ID, + changes: emojiSnapshot('old_value', undefined, creatorId), + }), + ).toEqual(summaryOnly('Hampus deleted an emoji.')); + } + }); +}); + +describe('presentStickerCreate', () => { + it('sets the description when one was given', () => { + expect( + present({ + action_type: AuditLogActionType.STICKER_CREATE, + target_id: STICKER_ID, + changes: stickerSnapshot('new_value', 'Wave', 'hello there'), + }), + ).toEqual({ + summary: 'Hampus added the sticker Wave.', + rows: ['~ Set the description to hello there.'], + blocks: [], + expandable: true, + }); + }); + + it('shows no rows without a description', () => { + for (const description of [null, '', ' ', 7]) { + expect( + present({ + action_type: AuditLogActionType.STICKER_CREATE, + target_id: STICKER_ID, + changes: stickerSnapshot('new_value', 'Wave', description), + }), + ).toEqual(summaryOnly('Hampus added the sticker Wave.')); + } + }); + + it('uses the unnamed summary when the name is missing', () => { + expect( + present({ + action_type: AuditLogActionType.STICKER_CREATE, + target_id: STICKER_ID, + changes: stickerSnapshot('new_value', null, 'hello there'), + }), + ).toEqual({ + summary: 'Hampus added a sticker.', + rows: ['~ Set the description to hello there.'], + blocks: [], + expandable: true, + }); + }); +}); + +describe('presentStickerUpdate', () => { + const context = fakeContext({stickers: {[STICKER_ID]: 'Wave'}}); + + it('renames with no rows when only the name changed', () => { + expect( + present( + { + action_type: AuditLogActionType.STICKER_UPDATE, + target_id: STICKER_ID, + changes: [{key: 'name', old_value: 'Wave', new_value: 'Hello'}], + }, + context, + ), + ).toEqual(summaryOnly('Hampus renamed the sticker Wave to Hello.')); + }); + + it('adds a description', () => { + expect( + present( + { + action_type: AuditLogActionType.STICKER_UPDATE, + target_id: STICKER_ID, + changes: [{key: 'description', old_value: null, new_value: 'hello there'}], + }, + context, + ), + ).toEqual({ + summary: 'Hampus updated the sticker Wave.', + rows: ['+ Set the description to hello there.'], + blocks: [], + expandable: true, + }); + }); + + it('changes a description', () => { + expect( + present( + { + action_type: AuditLogActionType.STICKER_UPDATE, + target_id: STICKER_ID, + changes: [{key: 'description', old_value: 'hi', new_value: 'hello there'}], + }, + context, + ), + ).toEqual({ + summary: 'Hampus updated the sticker Wave.', + rows: ['~ Changed the description from hi to hello there.'], + blocks: [], + expandable: true, + }); + }); + + it('removes a description, treating blank as removed', () => { + for (const newValue of [null, '', ' ']) { + expect( + present( + { + action_type: AuditLogActionType.STICKER_UPDATE, + target_id: STICKER_ID, + changes: [{key: 'description', old_value: 'hello there', new_value: newValue}], + }, + context, + ), + ).toEqual({ + summary: 'Hampus updated the sticker Wave.', + rows: ['- Removed the description hello there.'], + blocks: [], + expandable: true, + }); + } + }); + + it('lists the name before the description and names the sticker from the new name', () => { + expect( + present( + { + action_type: AuditLogActionType.STICKER_UPDATE, + target_id: STICKER_ID, + changes: [ + {key: 'description', old_value: 'hi', new_value: 'hello there'}, + {key: 'name', old_value: 'Wave', new_value: 'Hello'}, + ], + }, + context, + ), + ).toEqual({ + summary: 'Hampus updated the sticker Hello.', + rows: ['~ Changed the name from Wave to Hello.', '~ Changed the description from hi to hello there.'], + blocks: [], + expandable: true, + }); + }); + + it('names the sticker from the sticker store when the name did not change', () => { + expect( + present( + { + action_type: AuditLogActionType.STICKER_UPDATE, + target_id: STICKER_ID, + changes: [{key: 'description', old_value: 'hi', new_value: 'hello there'}], + }, + fakeContext({stickers: {[STICKER_ID]: 'Stored name'}}), + ), + ).toEqual({ + summary: 'Hampus updated the sticker Stored name.', + rows: ['~ Changed the description from hi to hello there.'], + blocks: [], + expandable: true, + }); + }); + + it('uses the unnamed summary when the sticker name is unknown', () => { + expect( + present({ + action_type: AuditLogActionType.STICKER_UPDATE, + target_id: STICKER_ID, + changes: [{key: 'description', old_value: null, new_value: 'hello there'}], + }), + ).toEqual({ + summary: 'Hampus updated a sticker.', + rows: ['+ Set the description to hello there.'], + blocks: [], + expandable: true, + }); + }); + + it('shows the summary alone for a legacy no-op or unchanged values', () => { + expect(present({action_type: AuditLogActionType.STICKER_UPDATE, target_id: STICKER_ID})).toEqual( + summaryOnly('Hampus updated a sticker.'), + ); + expect( + present( + { + action_type: AuditLogActionType.STICKER_UPDATE, + target_id: STICKER_ID, + changes: [ + {key: 'description', old_value: '', new_value: null}, + {key: 'tags', old_value: ['a'], new_value: ['b']}, + {key: 'animated', old_value: false, new_value: true}, + ], + }, + context, + ), + ).toEqual(summaryOnly('Hampus updated the sticker Wave.')); + }); + + it('omits the name row when either name is unreadable', () => { + expect( + present( + { + action_type: AuditLogActionType.STICKER_UPDATE, + target_id: STICKER_ID, + changes: [ + {key: 'name', old_value: 5, new_value: 'Hello'}, + {key: 'description', old_value: 'hi', new_value: 'hello there'}, + ], + }, + context, + ), + ).toEqual({ + summary: 'Hampus updated the sticker Hello.', + rows: ['~ Changed the description from hi to hello there.'], + blocks: [], + expandable: true, + }); + }); +}); + +describe('presentStickerDelete', () => { + it('shows no rows when the actor uploaded the sticker', () => { + expect( + present({ + action_type: AuditLogActionType.STICKER_DELETE, + target_id: STICKER_ID, + changes: stickerSnapshot('old_value', 'Wave', 'hello there'), + }), + ).toEqual(summaryOnly('Hampus deleted the sticker Wave.')); + }); + + it('names the uploader when someone else uploaded the sticker', () => { + expect( + present({ + action_type: AuditLogActionType.STICKER_DELETE, + target_id: STICKER_ID, + changes: stickerSnapshot('old_value', 'Wave', null, OTHER_USER_ID), + }), + ).toEqual({ + summary: 'Hampus deleted the sticker Wave.', + rows: ['~ The sticker was uploaded by ender.'], + blocks: [], + expandable: true, + }); + }); + + it('uses the unnamed summary when the name is missing', () => { + expect(present({action_type: AuditLogActionType.STICKER_DELETE, target_id: STICKER_ID})).toEqual( + summaryOnly('Hampus deleted a sticker.'), + ); + }); +}); + +describe('presentMessageDelete, presentMessagePin and presentMessageUnpin', () => { + const cases = [ + { + actionType: AuditLogActionType.MESSAGE_DELETE, + inChannel: `Hampus deleted a message in #${CHANNEL_ID}.`, + withoutChannel: 'Hampus deleted a message.', + }, + { + actionType: AuditLogActionType.MESSAGE_PIN, + inChannel: `Hampus pinned a message in #${CHANNEL_ID}.`, + withoutChannel: 'Hampus pinned a message.', + }, + { + actionType: AuditLogActionType.MESSAGE_UNPIN, + inChannel: `Hampus unpinned a message in #${CHANNEL_ID}.`, + withoutChannel: 'Hampus unpinned a message.', + }, + ]; + + for (const {actionType, inChannel, withoutChannel} of cases) { + describe(AuditLogActionType[actionType], () => { + it('names the channel', () => { + const fixture = { + action_type: actionType, + target_id: MESSAGE_ID, + options: {channel_id: CHANNEL_ID, message_id: MESSAGE_ID}, + }; + expect(present(fixture)).toEqual(summaryOnly(inChannel)); + expect(presentAuditLogEntry(makeEntry(fixture), fakeContext()).summary.values.channel).toEqual({ + kind: 'channel', + id: CHANNEL_ID, + recordedName: null, + fallback: 'channel', + }); + }); + + it('leaves the channel out when it is missing or not a snowflake', () => { + for (const options of [undefined, {}, {channel_id: null}, {channel_id: 1400}, {channel_id: 'general'}]) { + expect(present({action_type: actionType, target_id: MESSAGE_ID, options})).toEqual( + summaryOnly(withoutChannel), + ); + } + }); + + it('is expandable only for the Reason block', () => { + expect( + present({ + action_type: actionType, + target_id: MESSAGE_ID, + reason: 'Off topic', + options: {channel_id: CHANNEL_ID}, + }), + ).toEqual({summary: inChannel, rows: [], blocks: [{kind: 'reason', text: 'Off topic'}], expandable: true}); + }); + }); + } +}); + +describe('presentMessageBulkDelete', () => { + it('counts one message in a channel', () => { + expect( + present({action_type: AuditLogActionType.MESSAGE_BULK_DELETE, options: {channel_id: CHANNEL_ID, count: 1}}), + ).toEqual(summaryOnly(`Hampus deleted 1 message in #${CHANNEL_ID}.`)); + }); + + it('counts five messages in a channel, from a REST number or a dispatch string', () => { + for (const count of [5, '5']) { + expect( + present({action_type: AuditLogActionType.MESSAGE_BULK_DELETE, options: {channel_id: CHANNEL_ID, count}}), + ).toEqual(summaryOnly(`Hampus deleted 5 messages in #${CHANNEL_ID}.`)); + } + }); + + it('says some messages when the count is missing or not a positive whole number', () => { + for (const count of [undefined, null, 0, -3, 2.5, 'many', '']) { + expect( + present({action_type: AuditLogActionType.MESSAGE_BULK_DELETE, options: {channel_id: CHANNEL_ID, count}}), + ).toEqual(summaryOnly(`Hampus deleted some messages in #${CHANNEL_ID}.`)); + } + }); + + it('leaves the channel out when it is missing', () => { + expect(present({action_type: AuditLogActionType.MESSAGE_BULK_DELETE, options: {count: 5}})).toEqual( + summaryOnly('Hampus deleted 5 messages.'), + ); + expect(present({action_type: AuditLogActionType.MESSAGE_BULK_DELETE, options: {count: 1}})).toEqual( + summaryOnly('Hampus deleted 1 message.'), + ); + expect(present({action_type: AuditLogActionType.MESSAGE_BULK_DELETE})).toEqual( + summaryOnly('Hampus deleted some messages.'), + ); + }); + + it('passes the count through as a number for the plural', () => { + const presentation = presentAuditLogEntry( + makeEntry({action_type: AuditLogActionType.MESSAGE_BULK_DELETE, options: {channel_id: CHANNEL_ID, count: '12'}}), + fakeContext(), + ); + expect(presentation.summary.values.count).toBe(12); + }); + + it('is expandable only for the Reason block', () => { + expect( + present({ + action_type: AuditLogActionType.MESSAGE_BULK_DELETE, + reason: 'Spam wave', + options: {channel_id: CHANNEL_ID, count: 40}, + }), + ).toEqual({ + summary: `Hampus deleted 40 messages in #${CHANNEL_ID}.`, + rows: [], + blocks: [{kind: 'reason', text: 'Spam wave'}], + expandable: true, + }); + }); +}); + +describe('junk input', () => { + it('never throws and renders only summaries for every expression and message action', () => { + const junkFixtures: Array> = [ + {user_id: null, target_id: null}, + { + target_id: 'not-a-snowflake', + options: {channel_id: {}, count: [], message_id: 5}, + changes: [ + {key: 'name', old_value: {}, new_value: []}, + {key: 'description', old_value: 12, new_value: false}, + {key: 'creator_id', old_value: 1400, new_value: null}, + ], + }, + ]; + for (const actionType of EXPRESSION_MESSAGE_ACTION_TYPES) { + for (const fixture of junkFixtures) { + const result = present({...fixture, action_type: actionType}); + expect(result.rows).toEqual([]); + expect(result.blocks).toEqual([]); + expect(result.expandable).toBe(false); + } + } + }); +}); diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessagePresentation.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessagePresentation.ts new file mode 100644 index 000000000..2c9a138a3 --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessagePresentation.ts @@ -0,0 +1,296 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import { + EMOJI_CREATE_SUMMARY, + EMOJI_CREATE_UNNAMED_SUMMARY, + EMOJI_DELETE_SUMMARY, + EMOJI_DELETE_UNNAMED_SUMMARY, + EMOJI_RENAME_SUMMARY, + EMOJI_UPDATE_SUMMARY, + EMOJI_UPDATE_UNNAMED_SUMMARY, + EMOJI_UPLOADER_ROW, + MESSAGE_BULK_DELETE_IN_CHANNEL_SUMMARY, + MESSAGE_BULK_DELETE_SUMMARY, + MESSAGE_BULK_DELETE_UNCOUNTED_IN_CHANNEL_SUMMARY, + MESSAGE_BULK_DELETE_UNCOUNTED_SUMMARY, + MESSAGE_DELETE_IN_CHANNEL_SUMMARY, + MESSAGE_DELETE_SUMMARY, + MESSAGE_PIN_IN_CHANNEL_SUMMARY, + MESSAGE_PIN_SUMMARY, + MESSAGE_UNPIN_IN_CHANNEL_SUMMARY, + MESSAGE_UNPIN_SUMMARY, + STICKER_CREATE_SUMMARY, + STICKER_CREATE_UNNAMED_SUMMARY, + STICKER_DELETE_SUMMARY, + STICKER_DELETE_UNNAMED_SUMMARY, + STICKER_DESCRIPTION_CHANGED_ROW, + STICKER_DESCRIPTION_REMOVED_ROW, + STICKER_DESCRIPTION_SET_ROW, + STICKER_NAME_CHANGED_ROW, + STICKER_RENAME_SUMMARY, + STICKER_UPDATE_SUMMARY, + STICKER_UPDATE_UNNAMED_SUMMARY, + STICKER_UPLOADER_ROW, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages'; +import type { + AuditLogDetailRow, + AuditLogDomainResult, + AuditLogPlaceholder, + AuditLogPresentationContext, + AuditLogSentence, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogPresentationTypes'; +import { + actorPlaceholder, + readChange, + readNumber, + readOption, + readSnowflake, + readString, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogValues'; +import type {GuildAuditLogEntryResponse} from '@fluxer/schema/src/domains/guild/GuildAuditLogSchemas'; +import type {MessageDescriptor} from '@lingui/core'; + +interface NameChange { + oldName: string; + newName: string; +} + +function summaryOnly(summary: AuditLogSentence): AuditLogDomainResult { + return {summary, rows: [], blocks: []}; +} + +function namePlaceholder(value: string): AuditLogPlaceholder { + return {kind: 'name', value}; +} + +function textPlaceholder(value: string): AuditLogPlaceholder { + return {kind: 'text', value}; +} + +function readOldString(entry: GuildAuditLogEntryResponse, key: string): string | null { + return readString(readChange(entry, key)?.oldValue); +} + +function readNewString(entry: GuildAuditLogEntryResponse, key: string): string | null { + return readString(readChange(entry, key)?.newValue); +} + +function readNameChange(entry: GuildAuditLogEntryResponse): NameChange | null { + const oldName = readOldString(entry, 'name'); + const newName = readNewString(entry, 'name'); + if (oldName === null || newName === null || oldName === newName) return null; + return {oldName, newName}; +} + +function readCurrentName(entry: GuildAuditLogEntryResponse, lookup: (id: string) => string | null): string | null { + const recordedName = readNewString(entry, 'name'); + if (recordedName !== null) return recordedName; + const targetId = readSnowflake(entry.target_id); + return targetId === null ? null : readString(lookup(targetId)); +} + +function uploaderRows(entry: GuildAuditLogEntryResponse, descriptor: MessageDescriptor): Array { + const creatorId = readSnowflake(readChange(entry, 'creator_id')?.oldValue); + if (creatorId === null || creatorId === entry.user_id) return []; + return [{id: 'uploader', tone: 'neutral', sentence: {descriptor, values: {user: {kind: 'user', id: creatorId}}}}]; +} + +function readStickerDescriptionRow(entry: GuildAuditLogEntryResponse): AuditLogDetailRow | null { + const oldText = readOldString(entry, 'description'); + const newText = readNewString(entry, 'description'); + if (oldText === null) { + if (newText === null) return null; + return { + id: 'description', + tone: 'add', + sentence: {descriptor: STICKER_DESCRIPTION_SET_ROW, values: {text: textPlaceholder(newText)}}, + }; + } + if (newText === null) { + return { + id: 'description', + tone: 'remove', + sentence: {descriptor: STICKER_DESCRIPTION_REMOVED_ROW, values: {text: textPlaceholder(oldText)}}, + }; + } + if (oldText === newText) return null; + return { + id: 'description', + tone: 'neutral', + sentence: { + descriptor: STICKER_DESCRIPTION_CHANGED_ROW, + values: {oldText: textPlaceholder(oldText), newText: textPlaceholder(newText)}, + }, + }; +} + +function readMessageChannel(entry: GuildAuditLogEntryResponse): AuditLogPlaceholder | null { + const channelId = readSnowflake(readOption(entry, 'channel_id')); + return channelId === null ? null : {kind: 'channel', id: channelId, recordedName: null, fallback: 'channel'}; +} + +function readDeletedMessageCount(entry: GuildAuditLogEntryResponse): number | null { + const count = readNumber(readOption(entry, 'count')); + return count !== null && Number.isInteger(count) && count > 0 ? count : null; +} + +function presentMessageInChannel( + entry: GuildAuditLogEntryResponse, + inChannel: MessageDescriptor, + withoutChannel: MessageDescriptor, +): AuditLogDomainResult { + const actor = actorPlaceholder(entry); + const channel = readMessageChannel(entry); + return summaryOnly( + channel === null + ? {descriptor: withoutChannel, values: {actor}} + : {descriptor: inChannel, values: {actor, channel}}, + ); +} + +export function presentEmojiCreate(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + const actor = actorPlaceholder(entry); + const name = readNewString(entry, 'name'); + if (name === null) return summaryOnly({descriptor: EMOJI_CREATE_UNNAMED_SUMMARY, values: {actor}}); + return summaryOnly({ + descriptor: EMOJI_CREATE_SUMMARY, + values: {actor, emoji: {kind: 'emoji', id: readSnowflake(entry.target_id), name}}, + }); +} + +export function presentEmojiUpdate( + entry: GuildAuditLogEntryResponse, + context: AuditLogPresentationContext, +): AuditLogDomainResult { + const actor = actorPlaceholder(entry); + const emojiId = readSnowflake(entry.target_id); + const nameChange = readNameChange(entry); + if (nameChange !== null) { + return summaryOnly({ + descriptor: EMOJI_RENAME_SUMMARY, + values: { + actor, + oldEmoji: {kind: 'emoji', id: null, name: nameChange.oldName}, + newEmoji: {kind: 'emoji', id: emojiId, name: nameChange.newName}, + }, + }); + } + const name = readCurrentName(entry, (id) => context.getEmojiName(id)); + if (name === null) return summaryOnly({descriptor: EMOJI_UPDATE_UNNAMED_SUMMARY, values: {actor}}); + return summaryOnly({descriptor: EMOJI_UPDATE_SUMMARY, values: {actor, emoji: {kind: 'emoji', id: emojiId, name}}}); +} + +export function presentEmojiDelete(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + const actor = actorPlaceholder(entry); + const name = readOldString(entry, 'name'); + return { + summary: + name === null + ? {descriptor: EMOJI_DELETE_UNNAMED_SUMMARY, values: {actor}} + : {descriptor: EMOJI_DELETE_SUMMARY, values: {actor, emoji: {kind: 'emoji', id: null, name}}}, + rows: uploaderRows(entry, EMOJI_UPLOADER_ROW), + blocks: [], + }; +} + +export function presentStickerCreate(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + const actor = actorPlaceholder(entry); + const name = readNewString(entry, 'name'); + const description = readNewString(entry, 'description'); + return { + summary: + name === null + ? {descriptor: STICKER_CREATE_UNNAMED_SUMMARY, values: {actor}} + : {descriptor: STICKER_CREATE_SUMMARY, values: {actor, name: namePlaceholder(name)}}, + rows: + description === null + ? [] + : [ + { + id: 'description', + tone: 'neutral', + sentence: {descriptor: STICKER_DESCRIPTION_SET_ROW, values: {text: textPlaceholder(description)}}, + }, + ], + blocks: [], + }; +} + +export function presentStickerUpdate( + entry: GuildAuditLogEntryResponse, + context: AuditLogPresentationContext, +): AuditLogDomainResult { + const actor = actorPlaceholder(entry); + const nameChange = readNameChange(entry); + const descriptionRow = readStickerDescriptionRow(entry); + if (nameChange !== null && descriptionRow === null) { + return summaryOnly({ + descriptor: STICKER_RENAME_SUMMARY, + values: {actor, oldName: namePlaceholder(nameChange.oldName), newName: namePlaceholder(nameChange.newName)}, + }); + } + const name = readCurrentName(entry, (id) => context.getStickerName(id)); + const rows: Array = []; + if (nameChange !== null) { + rows.push({ + id: 'name', + tone: 'neutral', + sentence: { + descriptor: STICKER_NAME_CHANGED_ROW, + values: {oldName: namePlaceholder(nameChange.oldName), newName: namePlaceholder(nameChange.newName)}, + }, + }); + } + if (descriptionRow !== null) rows.push(descriptionRow); + return { + summary: + name === null + ? {descriptor: STICKER_UPDATE_UNNAMED_SUMMARY, values: {actor}} + : {descriptor: STICKER_UPDATE_SUMMARY, values: {actor, name: namePlaceholder(name)}}, + rows, + blocks: [], + }; +} + +export function presentStickerDelete(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + const actor = actorPlaceholder(entry); + const name = readOldString(entry, 'name'); + return { + summary: + name === null + ? {descriptor: STICKER_DELETE_UNNAMED_SUMMARY, values: {actor}} + : {descriptor: STICKER_DELETE_SUMMARY, values: {actor, name: namePlaceholder(name)}}, + rows: uploaderRows(entry, STICKER_UPLOADER_ROW), + blocks: [], + }; +} + +export function presentMessageDelete(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + return presentMessageInChannel(entry, MESSAGE_DELETE_IN_CHANNEL_SUMMARY, MESSAGE_DELETE_SUMMARY); +} + +export function presentMessageBulkDelete(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + const count = readDeletedMessageCount(entry); + if (count === null) { + return presentMessageInChannel( + entry, + MESSAGE_BULK_DELETE_UNCOUNTED_IN_CHANNEL_SUMMARY, + MESSAGE_BULK_DELETE_UNCOUNTED_SUMMARY, + ); + } + const actor = actorPlaceholder(entry); + const channel = readMessageChannel(entry); + return summaryOnly( + channel === null + ? {descriptor: MESSAGE_BULK_DELETE_SUMMARY, values: {actor, count}} + : {descriptor: MESSAGE_BULK_DELETE_IN_CHANNEL_SUMMARY, values: {actor, count, channel}}, + ); +} + +export function presentMessagePin(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + return presentMessageInChannel(entry, MESSAGE_PIN_IN_CHANNEL_SUMMARY, MESSAGE_PIN_SUMMARY); +} + +export function presentMessageUnpin(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + return presentMessageInChannel(entry, MESSAGE_UNPIN_IN_CHANNEL_SUMMARY, MESSAGE_UNPIN_SUMMARY); +} diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts new file mode 100644 index 000000000..296aba0f1 --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts @@ -0,0 +1,315 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {msg} from '@lingui/core/macro'; + +export const GUILD_SETTINGS_UPDATED_SUMMARY = msg({ + message: '{actor} updated the community settings.', + comment: + 'Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System.', +}); +export const GUILD_RENAMED_SUMMARY = msg({ + message: '{actor} renamed the community from {oldName} to {newName}.', + comment: + 'Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or .', +}); +export const GUILD_OWNERSHIP_TRANSFERRED_SUMMARY = msg({ + message: '{actor} transferred community ownership to {user}.', + comment: + 'Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip.', +}); +export const GUILD_VANITY_URL_SET_SUMMARY = msg({ + message: '{actor} set the vanity URL to {code}.', + comment: + 'Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text.', +}); +export const GUILD_VANITY_URL_CHANGED_SUMMARY = msg({ + message: '{actor} changed the vanity URL from {oldCode} to {newCode}.', + comment: + 'Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text.', +}); +export const GUILD_VANITY_URL_REMOVED_SUMMARY = msg({ + message: '{actor} removed the vanity URL {code}.', + comment: + 'Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text.', +}); +export const GUILD_INVITES_PAUSED_SUMMARY = msg({ + message: '{actor} paused invites.', + comment: + 'Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System.', +}); +export const GUILD_INVITES_RESUMED_SUMMARY = msg({ + message: '{actor} resumed invites.', + comment: + 'Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System.', +}); + +export const GUILD_RENAMED_ROW = msg({ + message: 'Renamed the community from {oldName} to {newName}.', + comment: + 'Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or .', +}); +export const GUILD_ICON_ADDED_ROW = msg({ + message: 'Added a community icon.', + comment: + 'Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_ICON_CHANGED_ROW = msg({ + message: 'Changed the community icon.', + comment: + 'Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_ICON_REMOVED_ROW = msg({ + message: 'Removed the community icon.', + comment: + 'Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_BANNER_ADDED_ROW = msg({ + message: 'Added a community banner.', + comment: + 'Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_BANNER_CHANGED_ROW = msg({ + message: 'Changed the community banner.', + comment: + 'Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_BANNER_REMOVED_ROW = msg({ + message: 'Removed the community banner.', + comment: + 'Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_DETACHED_BANNER_TURNED_ON_ROW = msg({ + message: 'Turned on the detached banner.', + comment: + 'Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_DETACHED_BANNER_TURNED_OFF_ROW = msg({ + message: 'Turned off the detached banner.', + comment: + 'Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_INVITE_BACKGROUND_ADDED_ROW = msg({ + message: 'Added an invite background.', + comment: + 'Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_INVITE_BACKGROUND_CHANGED_ROW = msg({ + message: 'Changed the invite background.', + comment: + 'Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_INVITE_BACKGROUND_REMOVED_ROW = msg({ + message: 'Removed the invite background.', + comment: + 'Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_INVITE_BACKGROUND_ALIGNMENT_CHANGED_ROW = msg({ + message: 'Changed the invite background alignment from {oldAlignment} to {newAlignment}.', + comment: + 'Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned.', +}); +export const GUILD_CHAT_EMBED_BACKGROUND_ADDED_ROW = msg({ + message: 'Added a chat embed background.', + comment: + 'Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_CHAT_EMBED_BACKGROUND_CHANGED_ROW = msg({ + message: 'Changed the chat embed background.', + comment: + 'Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_CHAT_EMBED_BACKGROUND_REMOVED_ROW = msg({ + message: 'Removed the chat embed background.', + comment: + 'Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_SYSTEM_CHANNEL_SET_ROW = msg({ + message: 'Set the system channel to {channel}.', + comment: + 'Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip.', +}); +export const GUILD_SYSTEM_CHANNEL_CHANGED_ROW = msg({ + message: 'Changed the system channel from {oldChannel} to {newChannel}.', + comment: + 'Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips.', +}); +export const GUILD_SYSTEM_CHANNEL_REMOVED_ROW = msg({ + message: 'Removed the system channel.', + comment: + 'Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_JOIN_MESSAGES_HIDDEN_ROW = msg({ + message: 'Hid join messages in the system channel.', + comment: + 'Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_JOIN_MESSAGES_SHOWN_ROW = msg({ + message: 'Stopped hiding join messages in the system channel.', + comment: + 'Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_DEFAULT_NOTIFICATIONS_CHANGED_ROW = msg({ + message: 'Changed the default notification setting from {oldSetting} to {newSetting}.', + comment: + 'Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only.', +}); +export const GUILD_AFK_CHANNEL_SET_ROW = msg({ + message: 'Set the AFK channel to {channel}.', + comment: + 'Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip.', +}); +export const GUILD_AFK_CHANNEL_CHANGED_ROW = msg({ + message: 'Changed the AFK channel from {oldChannel} to {newChannel}.', + comment: + 'Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips.', +}); +export const GUILD_AFK_CHANNEL_REMOVED_ROW = msg({ + message: 'Removed the AFK channel.', + comment: + 'Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_AFK_TIMEOUT_CHANGED_ROW = msg({ + message: 'Changed the AFK timeout from {oldDuration} to {newDuration}.', + comment: + 'Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour.', +}); +export const GUILD_FLEXIBLE_TEXT_CHANNEL_NAMES_ALLOWED_ROW = msg({ + message: 'Allowed flexible text channel names.', + comment: + 'Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective.', +}); +export const GUILD_FLEXIBLE_TEXT_CHANNEL_NAMES_DISALLOWED_ROW = msg({ + message: 'Stopped allowing flexible text channel names.', + comment: + 'Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_OWNER_CROWN_HIDDEN_ROW = msg({ + message: 'Hid the community owner crown.', + comment: + 'Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_OWNER_CROWN_SHOWN_ROW = msg({ + message: 'Stopped hiding the community owner crown.', + comment: + 'Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_MESSAGE_HISTORY_THRESHOLD_SET_ROW = msg({ + message: 'Set the message history threshold to {date}.', + comment: + 'Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time.', +}); +export const GUILD_MESSAGE_HISTORY_THRESHOLD_CHANGED_ROW = msg({ + message: 'Changed the message history threshold from {oldDate} to {newDate}.', + comment: + 'Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times.', +}); +export const GUILD_MESSAGE_HISTORY_THRESHOLD_REMOVED_ROW = msg({ + message: 'Removed the message history threshold.', + comment: + 'Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_INVITES_PAUSED_ROW = msg({ + message: 'Paused invites.', + comment: + 'Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label.', +}); +export const GUILD_INVITES_RESUMED_ROW = msg({ + message: 'Resumed invites.', + comment: + 'Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_EMOJI_CLONING_ALLOWED_ROW = msg({ + message: "Allowed others to clone this community's emojis.", + comment: + 'Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting.', +}); +export const GUILD_EMOJI_CLONING_STOPPED_ROW = msg({ + message: "Stopped allowing others to clone this community's emojis.", + comment: + 'Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_STICKER_CLONING_ALLOWED_ROW = msg({ + message: "Allowed others to clone this community's stickers.", + comment: + 'Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting.', +}); +export const GUILD_STICKER_CLONING_STOPPED_ROW = msg({ + message: "Stopped allowing others to clone this community's stickers.", + comment: + 'Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_VERIFICATION_LEVEL_CHANGED_ROW = msg({ + message: 'Changed the verification level from {oldLevel} to {newLevel}.', + comment: + 'Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high.', +}); +export const GUILD_EXPLICIT_CONTENT_FILTER_CHANGED_ROW = msg({ + message: 'Changed the explicit content filter from {oldFilter} to {newFilter}.', + comment: + 'Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone.', +}); +export const GUILD_MATURE_CONTENT_TURNED_ON_ROW = msg({ + message: 'Turned on mature content.', + comment: + 'Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_MATURE_CONTENT_TURNED_OFF_ROW = msg({ + message: 'Turned off mature content.', + comment: + 'Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_CONTENT_WARNING_TURNED_ON_ROW = msg({ + message: 'Turned on the content warning.', + comment: + 'Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_CONTENT_WARNING_TURNED_OFF_ROW = msg({ + message: 'Turned off the content warning.', + comment: + 'Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_CUSTOM_WARNING_TEXT_SET_ROW = msg({ + message: 'Set the custom warning text to {text}.', + comment: + 'Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text.', +}); +export const GUILD_CUSTOM_WARNING_TEXT_CHANGED_ROW = msg({ + message: 'Changed the custom warning text from {oldText} to {newText}.', + comment: + 'Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text.', +}); +export const GUILD_CUSTOM_WARNING_TEXT_REMOVED_ROW = msg({ + message: 'Removed the custom warning text.', + comment: + 'Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_MODERATION_2FA_REQUIRED_ROW = msg({ + message: 'Required 2FA for moderation actions.', + comment: + 'Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA.', +}); +export const GUILD_MODERATION_2FA_NOT_REQUIRED_ROW = msg({ + message: 'Stopped requiring 2FA for moderation actions.', + comment: + 'Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const GUILD_OWNERSHIP_TRANSFERRED_ROW = msg({ + message: 'Transferred community ownership to {user}.', + comment: + 'Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip.', +}); +export const GUILD_VANITY_URL_SET_ROW = msg({ + message: 'Set the vanity URL to {code}.', + comment: + 'Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text.', +}); +export const GUILD_VANITY_URL_CHANGED_ROW = msg({ + message: 'Changed the vanity URL from {oldCode} to {newCode}.', + comment: + 'Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text.', +}); +export const GUILD_VANITY_URL_REMOVED_ROW = msg({ + message: 'Removed the vanity URL {code}.', + comment: + 'Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text.', +}); diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildPresentation.test.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildPresentation.test.ts new file mode 100644 index 000000000..ad131cdd3 --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildPresentation.test.ts @@ -0,0 +1,754 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {presentGuildUpdate} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogGuildPresentation'; +import {presentAuditLogEntry} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogPresentation'; +import { + fakeContext, + makeEntry, + resultToText, + TEST_ACTOR_ID, + TEST_GUILD_ID, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogTestUtils'; +import {AuditLogActionType} from '@fluxer/constants/src/AuditLogActionType'; +import {describe, expect, it, vi} from 'vitest'; + +vi.mock('@lingui/core/macro', () => { + const descriptor = (value: unknown): unknown => (typeof value === 'string' ? {message: value} : value); + return {msg: descriptor, t: descriptor, plural: () => '', select: () => '', selectOrdinal: () => ''}; +}); + +vi.mock('@app/features/app/config/Config', () => ({ + default: { + PUBLIC_BUILD_VERSION: 'test', + PUBLIC_RELEASE_CHANNEL: 'canary', + PUBLIC_BOOTSTRAP_API_ENDPOINT: 'https://example.invalid', + PUBLIC_BOOTSTRAP_API_PUBLIC_ENDPOINT: 'https://example.invalid', + }, +})); + +interface ChangeFixture { + key: string; + old_value?: unknown; + new_value?: unknown; +} + +interface RowCase { + title: string; + changes: Array; + rows: Array; +} + +const NEW_OWNER_ID = '1400000000000000200'; +const FIRST_CHANNEL_ID = '1400000000000000300'; +const SECOND_CHANNEL_ID = '1400000000000000301'; +const USER_NAMES = {[TEST_ACTOR_ID]: 'Hampus', [NEW_OWNER_ID]: 'ender'}; +const SETTINGS_SUMMARY = 'Hampus updated the community settings.'; +const STAFF_FEATURES = ['VANITY_URL', 'VERIFIED']; + +function change(key: string, oldValue: unknown, newValue: unknown): ChangeFixture { + return {key, old_value: oldValue, new_value: newValue}; +} + +function featureChange(previous: Array, next: Array): ChangeFixture { + return change('features', [...STAFF_FEATURES, ...previous], [...STAFF_FEATURES, ...next]); +} + +const REQUIRE_2FA_CHANGE = change('mfa_level', 0, 1); +const REQUIRE_2FA_ROW = '+ Required 2FA for moderation actions.'; + +function present(changes: Array | undefined, fixture: {user_id?: string; reason?: string} = {}) { + const presentation = presentAuditLogEntry( + makeEntry({action_type: AuditLogActionType.GUILD_UPDATE, target_id: TEST_GUILD_ID, changes, ...fixture}), + fakeContext(), + ); + return {...resultToText(presentation, USER_NAMES), expandable: presentation.expandable}; +} + +function settingsUpdate(...rows: Array) { + return {summary: SETTINGS_SUMMARY, rows, blocks: [], expandable: true}; +} + +function summaryOnly(summary: string) { + return {summary, rows: [], blocks: [], expandable: false}; +} + +const ROW_CASES: Array = [ + { + title: 'row 1 renames the community', + changes: [REQUIRE_2FA_CHANGE, change('name', 'Old Name', 'New Name')], + rows: ['~ Renamed the community from Old Name to New Name.', REQUIRE_2FA_ROW], + }, + { + title: 'row 2 adds a community icon', + changes: [change('icon_hash', null, 'a_1f2e')], + rows: ['+ Added a community icon.'], + }, + { + title: 'row 2 changes the community icon', + changes: [change('icon_hash', '1f2e', 'a_3c4d')], + rows: ['~ Changed the community icon.'], + }, + { + title: 'row 2 removes the community icon', + changes: [change('icon_hash', '1f2e', null)], + rows: ['- Removed the community icon.'], + }, + { + title: 'row 3 adds a community banner', + changes: [ + change('banner_hash', null, '5b6a'), + change('banner_width', null, 960), + change('banner_height', null, 540), + ], + rows: ['+ Added a community banner.'], + }, + { + title: 'row 3 changes the community banner', + changes: [change('banner_hash', '5b6a', '6c7b')], + rows: ['~ Changed the community banner.'], + }, + { + title: 'row 3 removes the community banner', + changes: [ + change('banner_hash', '5b6a', null), + change('banner_width', 960, null), + change('banner_height', 540, null), + ], + rows: ['- Removed the community banner.'], + }, + { + title: 'row 4 turns on the detached banner', + changes: [featureChange([], ['DETACHED_BANNER'])], + rows: ['+ Turned on the detached banner.'], + }, + { + title: 'row 4 turns off the detached banner', + changes: [featureChange(['DETACHED_BANNER'], [])], + rows: ['- Turned off the detached banner.'], + }, + { + title: 'row 5 adds an invite background', + changes: [change('splash_hash', null, '7c8d')], + rows: ['+ Added an invite background.'], + }, + { + title: 'row 5 changes the invite background', + changes: [change('splash_hash', '7c8d', '9e0f')], + rows: ['~ Changed the invite background.'], + }, + { + title: 'row 5 removes the invite background', + changes: [change('splash_hash', '7c8d', null)], + rows: ['- Removed the invite background.'], + }, + { + title: 'row 6 changes the invite background alignment away from centered', + changes: [change('splash_card_alignment', 0, 1)], + rows: ['~ Changed the invite background alignment from Centered to Left aligned.'], + }, + { + title: 'row 6 changes the invite background alignment back to centered', + changes: [change('splash_card_alignment', 2, 0)], + rows: ['~ Changed the invite background alignment from Right aligned to Centered.'], + }, + { + title: 'row 7 adds a chat embed background', + changes: [change('embed_splash_hash', null, '2a3b')], + rows: ['+ Added a chat embed background.'], + }, + { + title: 'row 7 changes the chat embed background', + changes: [change('embed_splash_hash', '2a3b', '4c5d')], + rows: ['~ Changed the chat embed background.'], + }, + { + title: 'row 7 removes the chat embed background', + changes: [change('embed_splash_hash', '2a3b', null)], + rows: ['- Removed the chat embed background.'], + }, + { + title: 'row 8 sets the system channel', + changes: [change('system_channel_id', null, FIRST_CHANNEL_ID)], + rows: [`+ Set the system channel to #${FIRST_CHANNEL_ID}.`], + }, + { + title: 'row 8 changes the system channel', + changes: [change('system_channel_id', FIRST_CHANNEL_ID, SECOND_CHANNEL_ID)], + rows: [`~ Changed the system channel from #${FIRST_CHANNEL_ID} to #${SECOND_CHANNEL_ID}.`], + }, + { + title: 'row 8 removes the system channel', + changes: [change('system_channel_id', FIRST_CHANNEL_ID, null)], + rows: ['- Removed the system channel.'], + }, + { + title: 'row 9 hides join messages', + changes: [change('system_channel_flags', 0, 1)], + rows: ['~ Hid join messages in the system channel.'], + }, + { + title: 'row 9 stops hiding join messages', + changes: [change('system_channel_flags', 1, 0)], + rows: ['~ Stopped hiding join messages in the system channel.'], + }, + { + title: 'row 10 changes the default notifications to mentions only', + changes: [change('default_message_notifications', 0, 1)], + rows: ['~ Changed the default notification setting from All messages to Mentions only.'], + }, + { + title: 'row 10 changes the default notifications to all messages', + changes: [change('default_message_notifications', 1, 0)], + rows: ['~ Changed the default notification setting from Mentions only to All messages.'], + }, + { + title: 'row 11 sets the AFK channel', + changes: [change('afk_channel_id', null, FIRST_CHANNEL_ID)], + rows: [`+ Set the AFK channel to #${FIRST_CHANNEL_ID}.`], + }, + { + title: 'row 11 changes the AFK channel', + changes: [change('afk_channel_id', FIRST_CHANNEL_ID, SECOND_CHANNEL_ID)], + rows: [`~ Changed the AFK channel from #${FIRST_CHANNEL_ID} to #${SECOND_CHANNEL_ID}.`], + }, + { + title: 'row 11 removes the AFK channel', + changes: [change('afk_channel_id', FIRST_CHANNEL_ID, null)], + rows: ['- Removed the AFK channel.'], + }, + { + title: 'row 12 lengthens the AFK timeout', + changes: [change('afk_timeout', 300, 900)], + rows: ['~ Changed the AFK timeout from 5 minutes to 15 minutes.'], + }, + { + title: 'row 12 shortens the AFK timeout', + changes: [change('afk_timeout', 900, 300)], + rows: ['~ Changed the AFK timeout from 15 minutes to 5 minutes.'], + }, + { + title: 'row 13 allows flexible text channel names', + changes: [featureChange([], ['TEXT_CHANNEL_FLEXIBLE_NAMES'])], + rows: ['+ Allowed flexible text channel names.'], + }, + { + title: 'row 13 stops allowing flexible text channel names', + changes: [featureChange(['TEXT_CHANNEL_FLEXIBLE_NAMES'], [])], + rows: ['- Stopped allowing flexible text channel names.'], + }, + { + title: 'row 14 hides the owner crown', + changes: [featureChange([], ['HIDE_OWNER_CROWN'])], + rows: ['~ Hid the community owner crown.'], + }, + { + title: 'row 14 stops hiding the owner crown', + changes: [featureChange(['HIDE_OWNER_CROWN'], [])], + rows: ['~ Stopped hiding the community owner crown.'], + }, + { + title: 'row 15 sets the message history threshold', + changes: [change('message_history_cutoff', null, '2026-08-01T00:00:00.000Z')], + rows: ['+ Set the message history threshold to 2026-08-01T00:00:00.000Z.'], + }, + { + title: 'row 15 changes the message history threshold', + changes: [change('message_history_cutoff', '2026-08-01T00:00:00.000Z', '2026-08-15T09:30:00.000Z')], + rows: ['~ Changed the message history threshold from 2026-08-01T00:00:00.000Z to 2026-08-15T09:30:00.000Z.'], + }, + { + title: 'row 15 removes the message history threshold', + changes: [change('message_history_cutoff', '2026-08-01T00:00:00.000Z', null)], + rows: ['- Removed the message history threshold.'], + }, + { + title: 'row 16 pauses invites', + changes: [REQUIRE_2FA_CHANGE, featureChange([], ['INVITES_DISABLED'])], + rows: ['- Paused invites.', REQUIRE_2FA_ROW], + }, + { + title: 'row 16 resumes invites', + changes: [REQUIRE_2FA_CHANGE, featureChange(['INVITES_DISABLED'], [])], + rows: ['+ Resumed invites.', REQUIRE_2FA_ROW], + }, + { + title: 'row 17 allows others to clone emojis', + changes: [featureChange([], ['CLONE_EMOJI_ENABLED'])], + rows: ["+ Allowed others to clone this community's emojis."], + }, + { + title: 'row 17 stops allowing others to clone emojis', + changes: [featureChange(['CLONE_EMOJI_ENABLED'], [])], + rows: ["- Stopped allowing others to clone this community's emojis."], + }, + { + title: 'row 18 allows others to clone stickers', + changes: [featureChange([], ['CLONE_STICKER_ENABLED'])], + rows: ["+ Allowed others to clone this community's stickers."], + }, + { + title: 'row 18 stops allowing others to clone stickers', + changes: [featureChange(['CLONE_STICKER_ENABLED'], [])], + rows: ["- Stopped allowing others to clone this community's stickers."], + }, + { + title: 'row 19 raises the verification level', + changes: [change('verification_level', 0, 2)], + rows: ['~ Changed the verification level from None to Medium.'], + }, + { + title: 'row 19 lowers the verification level', + changes: [change('verification_level', 4, 1)], + rows: ['~ Changed the verification level from Very high to Low.'], + }, + { + title: 'row 20 turns on the explicit content filter', + changes: [change('explicit_content_filter', 0, 1)], + rows: ['~ Changed the explicit content filter from Off to Filter members without roles.'], + }, + { + title: 'row 20 turns off the explicit content filter', + changes: [change('explicit_content_filter', 2, 0)], + rows: ['~ Changed the explicit content filter from Filter everyone to Off.'], + }, + { + title: 'row 21 turns on mature content', + changes: [change('nsfw_level', 0, 3), change('nsfw', false, true)], + rows: ['+ Turned on mature content.'], + }, + { + title: 'row 21 turns off mature content', + changes: [change('nsfw_level', 3, 0), change('nsfw', true, false)], + rows: ['- Turned off mature content.'], + }, + { + title: 'row 22 turns on the content warning', + changes: [change('content_warning_level', 0, 1)], + rows: ['+ Turned on the content warning.'], + }, + { + title: 'row 22 turns off the content warning', + changes: [change('content_warning_level', 1, 0)], + rows: ['- Turned off the content warning.'], + }, + { + title: 'row 23 sets the custom warning text', + changes: [change('content_warning_text', null, 'Spoilers ahead')], + rows: ['+ Set the custom warning text to Spoilers ahead.'], + }, + { + title: 'row 23 changes the custom warning text', + changes: [change('content_warning_text', 'Spoilers ahead', 'Graphic content')], + rows: ['~ Changed the custom warning text from Spoilers ahead to Graphic content.'], + }, + { + title: 'row 23 removes the custom warning text', + changes: [change('content_warning_text', 'Spoilers ahead', null)], + rows: ['- Removed the custom warning text.'], + }, + {title: 'row 24 requires 2FA for moderation', changes: [REQUIRE_2FA_CHANGE], rows: [REQUIRE_2FA_ROW]}, + { + title: 'row 24 stops requiring 2FA for moderation', + changes: [change('mfa_level', 1, 0)], + rows: ['- Stopped requiring 2FA for moderation actions.'], + }, + { + title: 'row 25 transfers ownership next to another change', + changes: [change('owner_id', TEST_ACTOR_ID, NEW_OWNER_ID), REQUIRE_2FA_CHANGE], + rows: [REQUIRE_2FA_ROW, '~ Transferred community ownership to ender.'], + }, + { + title: 'row 26 sets the vanity URL next to another change', + changes: [change('vanity_url_code', null, 'fluxer'), REQUIRE_2FA_CHANGE], + rows: [REQUIRE_2FA_ROW, '+ Set the vanity URL to fluxer.'], + }, + { + title: 'row 26 changes the vanity URL next to another change', + changes: [change('vanity_url_code', 'fluxer', 'fluxerhq'), REQUIRE_2FA_CHANGE], + rows: [REQUIRE_2FA_ROW, '~ Changed the vanity URL from fluxer to fluxerhq.'], + }, + { + title: 'row 26 removes the vanity URL next to another change', + changes: [change('vanity_url_code', 'fluxer', null), REQUIRE_2FA_CHANGE], + rows: [REQUIRE_2FA_ROW, '- Removed the vanity URL fluxer.'], + }, +]; + +const EVERY_ROW_CHANGES: Array = [ + change('name', 'Old Name', 'New Name'), + change('icon_hash', null, 'a_1f2e'), + change('banner_hash', '5b6a', null), + featureChange( + [], + [ + 'CLONE_EMOJI_ENABLED', + 'CLONE_STICKER_ENABLED', + 'DETACHED_BANNER', + 'HIDE_OWNER_CROWN', + 'INVITES_DISABLED', + 'TEXT_CHANNEL_FLEXIBLE_NAMES', + ], + ), + change('splash_hash', '7c8d', '9e0f'), + change('splash_card_alignment', 0, 1), + change('embed_splash_hash', null, '2a3b'), + change('system_channel_id', null, FIRST_CHANNEL_ID), + change('system_channel_flags', 0, 1), + change('default_message_notifications', 0, 1), + change('afk_channel_id', FIRST_CHANNEL_ID, SECOND_CHANNEL_ID), + change('afk_timeout', 300, 900), + change('message_history_cutoff', null, '2026-08-01T00:00:00.000Z'), + change('verification_level', 1, 3), + change('explicit_content_filter', 0, 2), + change('nsfw', false, true), + change('content_warning_level', 0, 1), + change('content_warning_text', null, 'Spoilers ahead'), + change('mfa_level', 0, 1), + change('owner_id', TEST_ACTOR_ID, NEW_OWNER_ID), + change('vanity_url_code', 'fluxer', 'fluxerhq'), +]; + +describe('presentGuildUpdate summaries', () => { + it('names the new owner when ownership transfer is the only change', () => { + expect(present([change('owner_id', TEST_ACTOR_ID, NEW_OWNER_ID)])).toEqual( + summaryOnly('Hampus transferred community ownership to ender.'), + ); + }); + + it('keeps the Reason block on a summary that has no rows', () => { + expect(present([change('owner_id', TEST_ACTOR_ID, NEW_OWNER_ID)], {reason: 'Stepping%20down'})).toEqual({ + summary: 'Hampus transferred community ownership to ender.', + rows: [], + blocks: [{kind: 'reason', text: 'Stepping down'}], + expandable: true, + }); + }); + + it('summarizes a lone vanity URL change in every direction', () => { + expect(present([change('vanity_url_code', null, 'fluxer')])).toEqual( + summaryOnly('Hampus set the vanity URL to fluxer.'), + ); + expect(present([change('vanity_url_code', 'fluxer', 'fluxerhq')])).toEqual( + summaryOnly('Hampus changed the vanity URL from fluxer to fluxerhq.'), + ); + expect(present([change('vanity_url_code', 'fluxer', null)])).toEqual( + summaryOnly('Hampus removed the vanity URL fluxer.'), + ); + }); + + it('summarizes pausing and resuming invites when that is the only change', () => { + expect(present([featureChange([], ['INVITES_DISABLED'])])).toEqual(summaryOnly('Hampus paused invites.')); + expect(present([featureChange(['INVITES_DISABLED'], [])])).toEqual(summaryOnly('Hampus resumed invites.')); + }); + + it('summarizes a lone rename', () => { + expect(present([change('name', 'Old Name', 'New Name')])).toEqual( + summaryOnly('Hampus renamed the community from Old Name to New Name.'), + ); + }); + + it('keeps a single-change summary when ignored keys change alongside it', () => { + expect( + present([ + change('guild_id', TEST_GUILD_ID, TEST_GUILD_ID), + featureChange([], ['INVITES_DISABLED', 'DISCOVERABLE']), + change('member_count', 10, 11), + ]), + ).toEqual(summaryOnly('Hampus paused invites.')); + }); + + it('names the system as the actor', () => { + expect(present([featureChange([], ['INVITES_DISABLED'])], {user_id: '0'})).toEqual( + summaryOnly('System paused invites.'), + ); + expect(present([REQUIRE_2FA_CHANGE], {user_id: '0'})).toEqual({ + ...settingsUpdate(REQUIRE_2FA_ROW), + summary: 'System updated the community settings.', + }); + }); + + it('uses the settings summary with no rows when nothing changed', () => { + expect(present(undefined)).toEqual(summaryOnly(SETTINGS_SUMMARY)); + expect(present([])).toEqual(summaryOnly(SETTINGS_SUMMARY)); + }); + + it('adds the Reason block under the settings summary', () => { + expect(present([REQUIRE_2FA_CHANGE], {reason: 'Raid protection'})).toEqual({ + ...settingsUpdate(REQUIRE_2FA_ROW), + blocks: [{kind: 'reason', text: 'Raid protection'}], + }); + }); +}); + +describe('presentGuildUpdate rows', () => { + it.each(ROW_CASES)('$title', ({changes, rows}) => { + expect(present(changes)).toEqual(settingsUpdate(...rows)); + }); + + it('orders every row by the settings layout, not by the stored order', () => { + expect(present([...EVERY_ROW_CHANGES].reverse())).toEqual( + settingsUpdate( + '~ Renamed the community from Old Name to New Name.', + '+ Added a community icon.', + '- Removed the community banner.', + '+ Turned on the detached banner.', + '~ Changed the invite background.', + '~ Changed the invite background alignment from Centered to Left aligned.', + '+ Added a chat embed background.', + `+ Set the system channel to #${FIRST_CHANNEL_ID}.`, + '~ Hid join messages in the system channel.', + '~ Changed the default notification setting from All messages to Mentions only.', + `~ Changed the AFK channel from #${FIRST_CHANNEL_ID} to #${SECOND_CHANNEL_ID}.`, + '~ Changed the AFK timeout from 5 minutes to 15 minutes.', + '+ Allowed flexible text channel names.', + '~ Hid the community owner crown.', + '+ Set the message history threshold to 2026-08-01T00:00:00.000Z.', + '- Paused invites.', + "+ Allowed others to clone this community's emojis.", + "+ Allowed others to clone this community's stickers.", + '~ Changed the verification level from Low to High.', + '~ Changed the explicit content filter from Off to Filter everyone.', + '+ Turned on mature content.', + '+ Turned on the content warning.', + '+ Set the custom warning text to Spoilers ahead.', + REQUIRE_2FA_ROW, + '~ Transferred community ownership to ender.', + '~ Changed the vanity URL from fluxer to fluxerhq.', + ), + ); + }); + + it('gives every row a distinct id', () => { + const result = presentGuildUpdate( + makeEntry({action_type: AuditLogActionType.GUILD_UPDATE, changes: EVERY_ROW_CHANGES}), + ); + expect(new Set(result.rows.map((row) => row.id)).size).toBe(26); + }); + + it('renders the overview save example in settings order', () => { + expect( + present([ + change('name', 'Old Name', 'New Name'), + change('icon_hash', '1f2e', 'a_3c4d'), + featureChange([], ['HIDE_OWNER_CROWN']), + change('system_channel_flags', 0, 1), + change('afk_timeout', 300, 900), + ]), + ).toEqual( + settingsUpdate( + '~ Renamed the community from Old Name to New Name.', + '~ Changed the community icon.', + '~ Hid join messages in the system channel.', + '~ Changed the AFK timeout from 5 minutes to 15 minutes.', + '~ Hid the community owner crown.', + ), + ); + }); + + it('renders the moderation save example in settings order', () => { + expect( + present([ + change('nsfw_level', 0, 3), + change('nsfw', false, true), + change('content_warning_level', 0, 1), + change('content_warning_text', null, 'Spoilers ahead'), + ]), + ).toEqual( + settingsUpdate( + '+ Turned on mature content.', + '+ Turned on the content warning.', + '+ Set the custom warning text to Spoilers ahead.', + ), + ); + }); + + it('renders 60 seconds and 3600 seconds in their largest whole unit', () => { + expect(present([change('afk_timeout', 60, 3600)])).toEqual( + settingsUpdate('~ Changed the AFK timeout from 1 minute to 1 hour.'), + ); + }); + + it('reads values sent as strings', () => { + expect( + present([ + change('splash_card_alignment', '0', '2'), + change('system_channel_flags', '0', '1'), + change('afk_timeout', '300', '600'), + change('nsfw', 'false', 'true'), + change('mfa_level', '1', '0'), + ]), + ).toEqual( + settingsUpdate( + '~ Changed the invite background alignment from Centered to Right aligned.', + '~ Hid join messages in the system channel.', + '~ Changed the AFK timeout from 5 minutes to 10 minutes.', + '+ Turned on mature content.', + '- Stopped requiring 2FA for moderation actions.', + ), + ); + }); +}); + +describe('presentGuildUpdate legacy and ignored values', () => { + it('reads legacy CLONE_*_DISABLED features with the inverse meaning', () => { + expect(present([featureChange([], ['CLONE_EMOJI_DISABLED'])])).toEqual( + settingsUpdate("- Stopped allowing others to clone this community's emojis."), + ); + expect(present([featureChange(['CLONE_EMOJI_DISABLED'], [])])).toEqual( + settingsUpdate("+ Allowed others to clone this community's emojis."), + ); + expect(present([featureChange([], ['CLONE_STICKER_DISABLED'])])).toEqual( + settingsUpdate("- Stopped allowing others to clone this community's stickers."), + ); + expect(present([featureChange(['CLONE_STICKER_DISABLED'], [])])).toEqual( + settingsUpdate("+ Allowed others to clone this community's stickers."), + ); + }); + + it('gives one cloning row decided by the ENABLED feature when both forms change', () => { + expect(present([featureChange(['CLONE_EMOJI_DISABLED'], ['CLONE_EMOJI_ENABLED'])])).toEqual( + settingsUpdate("+ Allowed others to clone this community's emojis."), + ); + expect(present([featureChange(['CLONE_EMOJI_DISABLED', 'CLONE_EMOJI_ENABLED'], [])])).toEqual( + settingsUpdate("- Stopped allowing others to clone this community's emojis."), + ); + expect(present([featureChange(['CLONE_STICKER_DISABLED', 'CLONE_STICKER_ENABLED'], [])])).toEqual( + settingsUpdate("- Stopped allowing others to clone this community's stickers."), + ); + }); + + it('ignores a change to untracked features only', () => { + expect(present([featureChange([], ['DISCOVERABLE', 'UNLIMITED_EMOJI'])])).toEqual(summaryOnly(SETTINGS_SUMMARY)); + }); + + it('ignores a change to image dimensions only', () => { + expect( + present([ + change('banner_width', null, 960), + change('banner_height', null, 540), + change('splash_width', 1280, 1920), + change('splash_height', 720, 1080), + change('embed_splash_width', null, 640), + change('embed_splash_height', null, 360), + ]), + ).toEqual(summaryOnly(SETTINGS_SUMMARY)); + }); + + it('ignores rules_channel_id, disabled_operations, region, guild_id, member_count and unlisted keys', () => { + expect( + present([ + change('rules_channel_id', FIRST_CHANNEL_ID, null), + change('disabled_operations', 0, 1), + change('region', 'us-east', 'eu-west'), + change('guild_id', null, TEST_GUILD_ID), + change('member_count', 10, 11), + change('discovery_splash_hash', null, '1a2b'), + ]), + ).toEqual(summaryOnly(SETTINGS_SUMMARY)); + }); + + it('reads mature content from nsfw_level when nsfw is absent', () => { + expect(present([change('nsfw_level', 0, 3)])).toEqual(settingsUpdate('+ Turned on mature content.')); + expect(present([change('nsfw_level', 3, 0)])).toEqual(settingsUpdate('- Turned off mature content.')); + }); + + it('ignores nsfw_level values other than 0 and 3', () => { + expect(present([change('nsfw_level', 0, 1)])).toEqual(summaryOnly(SETTINGS_SUMMARY)); + expect(present([change('nsfw_level', 2, 3)])).toEqual(summaryOnly(SETTINGS_SUMMARY)); + }); + + it('ignores nsfw_level when nsfw is present', () => { + expect(present([change('nsfw_level', 0, 3), change('nsfw', true, false)])).toEqual( + settingsUpdate('- Turned off mature content.'), + ); + expect(present([change('nsfw_level', 0, 3), change('nsfw', true, true)])).toEqual(summaryOnly(SETTINGS_SUMMARY)); + }); + + it('reads only the join messages bit of system_channel_flags', () => { + expect(present([change('system_channel_flags', 1, 3)])).toEqual(summaryOnly(SETTINGS_SUMMARY)); + expect(present([change('system_channel_flags', 2, 3)])).toEqual( + settingsUpdate('~ Hid join messages in the system channel.'), + ); + }); + + it('omits a verification level outside the label table', () => { + expect(present([change('verification_level', 3, 5)])).toEqual(summaryOnly(SETTINGS_SUMMARY)); + expect(present([change('verification_level', 3, 5), REQUIRE_2FA_CHANGE])).toEqual(settingsUpdate(REQUIRE_2FA_ROW)); + }); + + it('omits alignment, notification and filter values outside their label tables', () => { + expect( + present([ + change('splash_card_alignment', 0, 3), + change('default_message_notifications', 1, 2), + change('explicit_content_filter', 2, 3), + ]), + ).toEqual(summaryOnly(SETTINGS_SUMMARY)); + }); + + it('omits content warning and 2FA values other than 0 and 1', () => { + expect(present([change('content_warning_level', 0, 2), change('mfa_level', 2, 1)])).toEqual( + summaryOnly(SETTINGS_SUMMARY), + ); + }); + + it('omits an unparseable message history threshold', () => { + expect(present([change('message_history_cutoff', null, 'not a date')])).toEqual(summaryOnly(SETTINGS_SUMMARY)); + expect(present([change('message_history_cutoff', 'not a date', '2026-08-01T00:00:00.000Z')])).toEqual( + summaryOnly(SETTINGS_SUMMARY), + ); + }); + + it('gives the settings summary without rows when the new owner cannot be read', () => { + expect(present([change('owner_id', TEST_ACTOR_ID, 'not-a-snowflake')])).toEqual(summaryOnly(SETTINGS_SUMMARY)); + expect(present([change('owner_id', TEST_ACTOR_ID, null)])).toEqual(summaryOnly(SETTINGS_SUMMARY)); + expect(present([change('owner_id', TEST_ACTOR_ID, Number(NEW_OWNER_ID))])).toEqual(summaryOnly(SETTINGS_SUMMARY)); + expect(present([change('owner_id', TEST_ACTOR_ID, TEST_ACTOR_ID)])).toEqual(summaryOnly(SETTINGS_SUMMARY)); + }); + + it('treats blank text as empty and skips values that are equal after reading', () => { + expect( + present([ + change('name', 'Same Name', ' Same Name '), + change('icon_hash', '', null), + change('vanity_url_code', ' ', null), + change('content_warning_text', 'Spoilers', 'Spoilers '), + change('afk_timeout', 300, 300.2), + change('system_channel_id', FIRST_CHANNEL_ID, FIRST_CHANNEL_ID), + ]), + ).toEqual(summaryOnly(SETTINGS_SUMMARY)); + expect(present([change('content_warning_text', 'Spoilers', ' ')])).toEqual( + settingsUpdate('- Removed the custom warning text.'), + ); + }); + + it('omits every row whose values fail their readers without throwing', () => { + expect( + present([ + change('name', 5, 'New Name'), + change('icon_hash', 7, 'a_1f2e'), + change('banner_hash', null, {hash: '5b6a'}), + change('features', 'DETACHED_BANNER', ['DETACHED_BANNER']), + change('splash_hash', ['7c8d'], null), + change('splash_card_alignment', 'left', 1), + change('embed_splash_hash', true, null), + change('system_channel_id', 'general', FIRST_CHANNEL_ID), + change('system_channel_flags', -1, 1), + change('default_message_notifications', null, 1), + change('afk_channel_id', null, Number(FIRST_CHANNEL_ID)), + change('afk_timeout', 'soon', 900), + change('verification_level', 1.5, 2), + change('explicit_content_filter', {}, 0), + change('nsfw', 'yes', true), + change('content_warning_level', null, 1), + change('content_warning_text', 42, 'Spoilers ahead'), + change('mfa_level', 'required', 1), + change('vanity_url_code', null, 1234), + ]), + ).toEqual(summaryOnly(SETTINGS_SUMMARY)); + expect(present([change('afk_timeout', -300, 900)])).toEqual(summaryOnly(SETTINGS_SUMMARY)); + expect(present([{key: 'name'}, {key: 'features', new_value: ['INVITES_DISABLED']}])).toEqual( + summaryOnly(SETTINGS_SUMMARY), + ); + }); +}); diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildPresentation.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildPresentation.ts new file mode 100644 index 000000000..9676ad586 --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildPresentation.ts @@ -0,0 +1,636 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import { + GUILD_AFK_CHANNEL_CHANGED_ROW, + GUILD_AFK_CHANNEL_REMOVED_ROW, + GUILD_AFK_CHANNEL_SET_ROW, + GUILD_AFK_TIMEOUT_CHANGED_ROW, + GUILD_BANNER_ADDED_ROW, + GUILD_BANNER_CHANGED_ROW, + GUILD_BANNER_REMOVED_ROW, + GUILD_CHAT_EMBED_BACKGROUND_ADDED_ROW, + GUILD_CHAT_EMBED_BACKGROUND_CHANGED_ROW, + GUILD_CHAT_EMBED_BACKGROUND_REMOVED_ROW, + GUILD_CONTENT_WARNING_TURNED_OFF_ROW, + GUILD_CONTENT_WARNING_TURNED_ON_ROW, + GUILD_CUSTOM_WARNING_TEXT_CHANGED_ROW, + GUILD_CUSTOM_WARNING_TEXT_REMOVED_ROW, + GUILD_CUSTOM_WARNING_TEXT_SET_ROW, + GUILD_DEFAULT_NOTIFICATIONS_CHANGED_ROW, + GUILD_DETACHED_BANNER_TURNED_OFF_ROW, + GUILD_DETACHED_BANNER_TURNED_ON_ROW, + GUILD_EMOJI_CLONING_ALLOWED_ROW, + GUILD_EMOJI_CLONING_STOPPED_ROW, + GUILD_EXPLICIT_CONTENT_FILTER_CHANGED_ROW, + GUILD_FLEXIBLE_TEXT_CHANNEL_NAMES_ALLOWED_ROW, + GUILD_FLEXIBLE_TEXT_CHANNEL_NAMES_DISALLOWED_ROW, + GUILD_ICON_ADDED_ROW, + GUILD_ICON_CHANGED_ROW, + GUILD_ICON_REMOVED_ROW, + GUILD_INVITE_BACKGROUND_ADDED_ROW, + GUILD_INVITE_BACKGROUND_ALIGNMENT_CHANGED_ROW, + GUILD_INVITE_BACKGROUND_CHANGED_ROW, + GUILD_INVITE_BACKGROUND_REMOVED_ROW, + GUILD_INVITES_PAUSED_ROW, + GUILD_INVITES_PAUSED_SUMMARY, + GUILD_INVITES_RESUMED_ROW, + GUILD_INVITES_RESUMED_SUMMARY, + GUILD_JOIN_MESSAGES_HIDDEN_ROW, + GUILD_JOIN_MESSAGES_SHOWN_ROW, + GUILD_MATURE_CONTENT_TURNED_OFF_ROW, + GUILD_MATURE_CONTENT_TURNED_ON_ROW, + GUILD_MESSAGE_HISTORY_THRESHOLD_CHANGED_ROW, + GUILD_MESSAGE_HISTORY_THRESHOLD_REMOVED_ROW, + GUILD_MESSAGE_HISTORY_THRESHOLD_SET_ROW, + GUILD_MODERATION_2FA_NOT_REQUIRED_ROW, + GUILD_MODERATION_2FA_REQUIRED_ROW, + GUILD_OWNER_CROWN_HIDDEN_ROW, + GUILD_OWNER_CROWN_SHOWN_ROW, + GUILD_OWNERSHIP_TRANSFERRED_ROW, + GUILD_OWNERSHIP_TRANSFERRED_SUMMARY, + GUILD_RENAMED_ROW, + GUILD_RENAMED_SUMMARY, + GUILD_SETTINGS_UPDATED_SUMMARY, + GUILD_STICKER_CLONING_ALLOWED_ROW, + GUILD_STICKER_CLONING_STOPPED_ROW, + GUILD_SYSTEM_CHANNEL_CHANGED_ROW, + GUILD_SYSTEM_CHANNEL_REMOVED_ROW, + GUILD_SYSTEM_CHANNEL_SET_ROW, + GUILD_VANITY_URL_CHANGED_ROW, + GUILD_VANITY_URL_CHANGED_SUMMARY, + GUILD_VANITY_URL_REMOVED_ROW, + GUILD_VANITY_URL_REMOVED_SUMMARY, + GUILD_VANITY_URL_SET_ROW, + GUILD_VANITY_URL_SET_SUMMARY, + GUILD_VERIFICATION_LEVEL_CHANGED_ROW, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages'; +import type { + AuditLogDetailRow, + AuditLogDomainResult, + AuditLogPlaceholder, + AuditLogSentence, + AuditLogTone, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogPresentationTypes'; +import { + CENTERED_LABEL, + DEFAULT_NOTIFICATIONS_ALL_MESSAGES_LABEL, + DEFAULT_NOTIFICATIONS_MENTIONS_ONLY_LABEL, + EXPLICIT_CONTENT_FILTER_EVERYONE_LABEL, + EXPLICIT_CONTENT_FILTER_MEMBERS_WITHOUT_ROLES_LABEL, + EXPLICIT_CONTENT_FILTER_OFF_LABEL, + LEFT_ALIGNED_LABEL, + RIGHT_ALIGNED_LABEL, + VERIFICATION_LEVEL_HIGH_LABEL, + VERIFICATION_LEVEL_LOW_LABEL, + VERIFICATION_LEVEL_MEDIUM_LABEL, + VERIFICATION_LEVEL_NONE_LABEL, + VERIFICATION_LEVEL_VERY_HIGH_LABEL, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages'; +import { + actorPlaceholder, + featureDelta, + readBitfield, + readBoolean, + readChange, + readNumber, + readSnowflake, + readString, + readStringArray, + readTimestamp, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogValues'; +import { + ContentWarningLevel, + GuildExplicitContentFilterTypes, + GuildFeatures, + GuildMFALevel, + GuildNSFWLevel, + GuildSplashCardAlignment, + GuildVerificationLevel, + SystemChannelFlags, +} from '@fluxer/constants/src/GuildConstants'; +import {MessageNotifications} from '@fluxer/constants/src/NotificationConstants'; +import type {GuildAuditLogEntryResponse} from '@fluxer/schema/src/domains/guild/GuildAuditLogSchemas'; +import type {MessageDescriptor} from '@lingui/core'; + +interface GuildChange { + row: AuditLogDetailRow; + summary: AuditLogSentence | null; +} + +interface FeatureLists { + previous: Array; + next: Array; +} + +interface ToggleSentence { + tone: AuditLogTone; + descriptor: MessageDescriptor; +} + +interface Toggle { + on: ToggleSentence; + off: ToggleSentence; +} + +interface ImageSentences { + added: MessageDescriptor; + changed: MessageDescriptor; + removed: MessageDescriptor; +} + +interface ChannelSentences { + set: MessageDescriptor; + changed: MessageDescriptor; + removed: MessageDescriptor; +} + +type NullableChange = + | {kind: 'added'; value: T} + | {kind: 'changed'; oldValue: T; newValue: T} + | {kind: 'removed'; value: T}; + +type SentenceValues = AuditLogSentence['values']; + +const SUPPRESS_JOIN_NOTIFICATIONS_FLAG = BigInt(SystemChannelFlags.SUPPRESS_JOIN_NOTIFICATIONS); + +const SPLASH_CARD_ALIGNMENT_LABELS: ReadonlyMap = new Map([ + [GuildSplashCardAlignment.CENTER, CENTERED_LABEL], + [GuildSplashCardAlignment.LEFT, LEFT_ALIGNED_LABEL], + [GuildSplashCardAlignment.RIGHT, RIGHT_ALIGNED_LABEL], +]); +const DEFAULT_NOTIFICATIONS_LABELS: ReadonlyMap = new Map([ + [MessageNotifications.ALL_MESSAGES, DEFAULT_NOTIFICATIONS_ALL_MESSAGES_LABEL], + [MessageNotifications.ONLY_MENTIONS, DEFAULT_NOTIFICATIONS_MENTIONS_ONLY_LABEL], +]); +const VERIFICATION_LEVEL_LABELS: ReadonlyMap = new Map([ + [GuildVerificationLevel.NONE, VERIFICATION_LEVEL_NONE_LABEL], + [GuildVerificationLevel.LOW, VERIFICATION_LEVEL_LOW_LABEL], + [GuildVerificationLevel.MEDIUM, VERIFICATION_LEVEL_MEDIUM_LABEL], + [GuildVerificationLevel.HIGH, VERIFICATION_LEVEL_HIGH_LABEL], + [GuildVerificationLevel.VERY_HIGH, VERIFICATION_LEVEL_VERY_HIGH_LABEL], +]); +const EXPLICIT_CONTENT_FILTER_LABELS: ReadonlyMap = new Map([ + [GuildExplicitContentFilterTypes.DISABLED, EXPLICIT_CONTENT_FILTER_OFF_LABEL], + [GuildExplicitContentFilterTypes.MEMBERS_WITHOUT_ROLES, EXPLICIT_CONTENT_FILTER_MEMBERS_WITHOUT_ROLES_LABEL], + [GuildExplicitContentFilterTypes.ALL_MEMBERS, EXPLICIT_CONTENT_FILTER_EVERYONE_LABEL], +]); + +const ICON_SENTENCES: ImageSentences = { + added: GUILD_ICON_ADDED_ROW, + changed: GUILD_ICON_CHANGED_ROW, + removed: GUILD_ICON_REMOVED_ROW, +}; +const BANNER_SENTENCES: ImageSentences = { + added: GUILD_BANNER_ADDED_ROW, + changed: GUILD_BANNER_CHANGED_ROW, + removed: GUILD_BANNER_REMOVED_ROW, +}; +const INVITE_BACKGROUND_SENTENCES: ImageSentences = { + added: GUILD_INVITE_BACKGROUND_ADDED_ROW, + changed: GUILD_INVITE_BACKGROUND_CHANGED_ROW, + removed: GUILD_INVITE_BACKGROUND_REMOVED_ROW, +}; +const CHAT_EMBED_BACKGROUND_SENTENCES: ImageSentences = { + added: GUILD_CHAT_EMBED_BACKGROUND_ADDED_ROW, + changed: GUILD_CHAT_EMBED_BACKGROUND_CHANGED_ROW, + removed: GUILD_CHAT_EMBED_BACKGROUND_REMOVED_ROW, +}; +const SYSTEM_CHANNEL_SENTENCES: ChannelSentences = { + set: GUILD_SYSTEM_CHANNEL_SET_ROW, + changed: GUILD_SYSTEM_CHANNEL_CHANGED_ROW, + removed: GUILD_SYSTEM_CHANNEL_REMOVED_ROW, +}; +const AFK_CHANNEL_SENTENCES: ChannelSentences = { + set: GUILD_AFK_CHANNEL_SET_ROW, + changed: GUILD_AFK_CHANNEL_CHANGED_ROW, + removed: GUILD_AFK_CHANNEL_REMOVED_ROW, +}; + +const DETACHED_BANNER_TOGGLE: Toggle = { + on: {tone: 'add', descriptor: GUILD_DETACHED_BANNER_TURNED_ON_ROW}, + off: {tone: 'remove', descriptor: GUILD_DETACHED_BANNER_TURNED_OFF_ROW}, +}; +const JOIN_MESSAGES_HIDDEN_TOGGLE: Toggle = { + on: {tone: 'neutral', descriptor: GUILD_JOIN_MESSAGES_HIDDEN_ROW}, + off: {tone: 'neutral', descriptor: GUILD_JOIN_MESSAGES_SHOWN_ROW}, +}; +const FLEXIBLE_TEXT_CHANNEL_NAMES_TOGGLE: Toggle = { + on: {tone: 'add', descriptor: GUILD_FLEXIBLE_TEXT_CHANNEL_NAMES_ALLOWED_ROW}, + off: {tone: 'remove', descriptor: GUILD_FLEXIBLE_TEXT_CHANNEL_NAMES_DISALLOWED_ROW}, +}; +const OWNER_CROWN_HIDDEN_TOGGLE: Toggle = { + on: {tone: 'neutral', descriptor: GUILD_OWNER_CROWN_HIDDEN_ROW}, + off: {tone: 'neutral', descriptor: GUILD_OWNER_CROWN_SHOWN_ROW}, +}; +const EMOJI_CLONING_TOGGLE: Toggle = { + on: {tone: 'add', descriptor: GUILD_EMOJI_CLONING_ALLOWED_ROW}, + off: {tone: 'remove', descriptor: GUILD_EMOJI_CLONING_STOPPED_ROW}, +}; +const STICKER_CLONING_TOGGLE: Toggle = { + on: {tone: 'add', descriptor: GUILD_STICKER_CLONING_ALLOWED_ROW}, + off: {tone: 'remove', descriptor: GUILD_STICKER_CLONING_STOPPED_ROW}, +}; +const MATURE_CONTENT_TOGGLE: Toggle = { + on: {tone: 'add', descriptor: GUILD_MATURE_CONTENT_TURNED_ON_ROW}, + off: {tone: 'remove', descriptor: GUILD_MATURE_CONTENT_TURNED_OFF_ROW}, +}; +const CONTENT_WARNING_TOGGLE: Toggle = { + on: {tone: 'add', descriptor: GUILD_CONTENT_WARNING_TURNED_ON_ROW}, + off: {tone: 'remove', descriptor: GUILD_CONTENT_WARNING_TURNED_OFF_ROW}, +}; +const MODERATION_2FA_TOGGLE: Toggle = { + on: {tone: 'add', descriptor: GUILD_MODERATION_2FA_REQUIRED_ROW}, + off: {tone: 'remove', descriptor: GUILD_MODERATION_2FA_NOT_REQUIRED_ROW}, +}; + +function settingChange( + id: string, + tone: AuditLogTone, + descriptor: MessageDescriptor, + values: SentenceValues = {}, +): GuildChange { + return {row: {id, tone, sentence: {descriptor, values}}, summary: null}; +} + +function summarizedChange( + id: string, + tone: AuditLogTone, + rowDescriptor: MessageDescriptor, + summaryDescriptor: MessageDescriptor, + actor: AuditLogPlaceholder, + values: SentenceValues = {}, +): GuildChange { + return { + row: {id, tone, sentence: {descriptor: rowDescriptor, values}}, + summary: {descriptor: summaryDescriptor, values: {actor, ...values}}, + }; +} + +function channelPlaceholder(id: string): AuditLogPlaceholder { + return {kind: 'channel', id, recordedName: null, fallback: 'channel'}; +} + +function textPlaceholder(value: string): AuditLogPlaceholder { + return {kind: 'text', value}; +} + +function readNullableText(value: unknown): string | null | undefined { + if (value === null) return null; + return typeof value === 'string' ? readString(value) : undefined; +} + +function readNullableSnowflake(value: unknown): string | null | undefined { + return value === null ? null : (readSnowflake(value) ?? undefined); +} + +function readNullableTimestamp(value: unknown): number | null | undefined { + return value === null ? null : (readTimestamp(value) ?? undefined); +} + +function readSeconds(value: unknown): number | null { + const seconds = readNumber(value); + return seconds !== null && seconds >= 0 ? Math.round(seconds) : null; +} + +function readSwitch(value: unknown, offValue: number, onValue: number): boolean | null { + const setting = readNumber(value); + if (setting === offValue) return false; + if (setting === onValue) return true; + return null; +} + +function readLabel(value: unknown, labels: ReadonlyMap): MessageDescriptor | null { + const setting = readNumber(value); + return setting === null ? null : (labels.get(setting) ?? null); +} + +function readJoinMessagesHidden(value: unknown): boolean | null { + const flags = readBitfield(value); + return flags === null ? null : (flags & SUPPRESS_JOIN_NOTIFICATIONS_FLAG) !== 0n; +} + +function readDiff( + entry: GuildAuditLogEntryResponse, + key: string, + reader: (value: unknown) => T | null, +): {oldValue: T; newValue: T} | null { + const change = readChange(entry, key); + if (change === null) return null; + const oldValue = reader(change.oldValue); + const newValue = reader(change.newValue); + if (oldValue === null || newValue === null || oldValue === newValue) return null; + return {oldValue, newValue}; +} + +function readNullableChange( + entry: GuildAuditLogEntryResponse, + key: string, + reader: (value: unknown) => T | null | undefined, +): NullableChange | null { + const change = readChange(entry, key); + if (change === null) return null; + const oldValue = reader(change.oldValue); + const newValue = reader(change.newValue); + if (oldValue === undefined || newValue === undefined) return null; + if (oldValue === null) return newValue === null ? null : {kind: 'added', value: newValue}; + if (newValue === null) return {kind: 'removed', value: oldValue}; + return oldValue === newValue ? null : {kind: 'changed', oldValue, newValue}; +} + +function readTurnedOn( + entry: GuildAuditLogEntryResponse, + key: string, + reader: (value: unknown) => boolean | null, +): boolean | null { + return readDiff(entry, key, reader)?.newValue ?? null; +} + +function readFeatureLists(entry: GuildAuditLogEntryResponse): FeatureLists | null { + const change = readChange(entry, 'features'); + if (change === null) return null; + const previous = readStringArray(change.oldValue); + const next = readStringArray(change.newValue); + return previous === null || next === null ? null : {previous, next}; +} + +function readFeatureAdded(features: FeatureLists | null, feature: string): boolean | null { + const delta = features === null ? null : featureDelta(features.previous, features.next, feature); + return delta === null ? null : delta === 'added'; +} + +function readCloningAllowed( + features: FeatureLists | null, + enabledFeature: string, + disabledFeature: string, +): boolean | null { + const enabledAdded = readFeatureAdded(features, enabledFeature); + if (enabledAdded !== null) return enabledAdded; + const disabledAdded = readFeatureAdded(features, disabledFeature); + return disabledAdded === null ? null : !disabledAdded; +} + +function readMatureContentOn(entry: GuildAuditLogEntryResponse): boolean | null { + if (readChange(entry, 'nsfw') !== null) return readTurnedOn(entry, 'nsfw', readBoolean); + return readTurnedOn(entry, 'nsfw_level', (value) => + readSwitch(value, GuildNSFWLevel.SAFE, GuildNSFWLevel.AGE_RESTRICTED), + ); +} + +function toggleChange(id: string, turnedOn: boolean | null, toggle: Toggle): GuildChange | null { + if (turnedOn === null) return null; + const {tone, descriptor} = turnedOn ? toggle.on : toggle.off; + return settingChange(id, tone, descriptor); +} + +function presentName(entry: GuildAuditLogEntryResponse, actor: AuditLogPlaceholder): GuildChange | null { + const change = readDiff(entry, 'name', readString); + if (change === null) return null; + return summarizedChange('name', 'neutral', GUILD_RENAMED_ROW, GUILD_RENAMED_SUMMARY, actor, { + oldName: {kind: 'name', value: change.oldValue}, + newName: {kind: 'name', value: change.newValue}, + }); +} + +function presentImage(entry: GuildAuditLogEntryResponse, key: string, sentences: ImageSentences): GuildChange | null { + const change = readNullableChange(entry, key, readNullableText); + if (change === null) return null; + switch (change.kind) { + case 'added': + return settingChange(key, 'add', sentences.added); + case 'changed': + return settingChange(key, 'neutral', sentences.changed); + case 'removed': + return settingChange(key, 'remove', sentences.removed); + } +} + +function presentLabel( + entry: GuildAuditLogEntryResponse, + key: string, + labels: ReadonlyMap, + descriptor: MessageDescriptor, + oldName: string, + newName: string, +): GuildChange | null { + const change = readDiff(entry, key, (value) => readLabel(value, labels)); + if (change === null) return null; + return settingChange(key, 'neutral', descriptor, { + [oldName]: {kind: 'label', descriptor: change.oldValue}, + [newName]: {kind: 'label', descriptor: change.newValue}, + }); +} + +function presentChannel( + entry: GuildAuditLogEntryResponse, + key: string, + sentences: ChannelSentences, +): GuildChange | null { + const change = readNullableChange(entry, key, readNullableSnowflake); + if (change === null) return null; + switch (change.kind) { + case 'added': + return settingChange(key, 'add', sentences.set, {channel: channelPlaceholder(change.value)}); + case 'changed': + return settingChange(key, 'neutral', sentences.changed, { + oldChannel: channelPlaceholder(change.oldValue), + newChannel: channelPlaceholder(change.newValue), + }); + case 'removed': + return settingChange(key, 'remove', sentences.removed); + } +} + +function presentAfkTimeout(entry: GuildAuditLogEntryResponse): GuildChange | null { + const change = readDiff(entry, 'afk_timeout', readSeconds); + if (change === null) return null; + return settingChange('afk_timeout', 'neutral', GUILD_AFK_TIMEOUT_CHANGED_ROW, { + oldDuration: {kind: 'duration', seconds: change.oldValue}, + newDuration: {kind: 'duration', seconds: change.newValue}, + }); +} + +function presentMessageHistoryCutoff(entry: GuildAuditLogEntryResponse): GuildChange | null { + const change = readNullableChange(entry, 'message_history_cutoff', readNullableTimestamp); + if (change === null) return null; + switch (change.kind) { + case 'added': + return settingChange('message_history_cutoff', 'add', GUILD_MESSAGE_HISTORY_THRESHOLD_SET_ROW, { + date: {kind: 'date', timestamp: change.value}, + }); + case 'changed': + return settingChange('message_history_cutoff', 'neutral', GUILD_MESSAGE_HISTORY_THRESHOLD_CHANGED_ROW, { + oldDate: {kind: 'date', timestamp: change.oldValue}, + newDate: {kind: 'date', timestamp: change.newValue}, + }); + case 'removed': + return settingChange('message_history_cutoff', 'remove', GUILD_MESSAGE_HISTORY_THRESHOLD_REMOVED_ROW); + } +} + +function presentInvitesPaused(features: FeatureLists | null, actor: AuditLogPlaceholder): GuildChange | null { + const paused = readFeatureAdded(features, GuildFeatures.INVITES_DISABLED); + if (paused === null) return null; + return paused + ? summarizedChange('invites_disabled', 'remove', GUILD_INVITES_PAUSED_ROW, GUILD_INVITES_PAUSED_SUMMARY, actor) + : summarizedChange('invites_disabled', 'add', GUILD_INVITES_RESUMED_ROW, GUILD_INVITES_RESUMED_SUMMARY, actor); +} + +function presentContentWarningText(entry: GuildAuditLogEntryResponse): GuildChange | null { + const change = readNullableChange(entry, 'content_warning_text', readNullableText); + if (change === null) return null; + switch (change.kind) { + case 'added': + return settingChange('content_warning_text', 'add', GUILD_CUSTOM_WARNING_TEXT_SET_ROW, { + text: textPlaceholder(change.value), + }); + case 'changed': + return settingChange('content_warning_text', 'neutral', GUILD_CUSTOM_WARNING_TEXT_CHANGED_ROW, { + oldText: textPlaceholder(change.oldValue), + newText: textPlaceholder(change.newValue), + }); + case 'removed': + return settingChange('content_warning_text', 'remove', GUILD_CUSTOM_WARNING_TEXT_REMOVED_ROW); + } +} + +function presentOwnershipTransfer(entry: GuildAuditLogEntryResponse, actor: AuditLogPlaceholder): GuildChange | null { + const change = readChange(entry, 'owner_id'); + if (change === null) return null; + const newOwnerId = readSnowflake(change.newValue); + if (newOwnerId === null || readSnowflake(change.oldValue) === newOwnerId) return null; + return summarizedChange( + 'owner_id', + 'neutral', + GUILD_OWNERSHIP_TRANSFERRED_ROW, + GUILD_OWNERSHIP_TRANSFERRED_SUMMARY, + actor, + {user: {kind: 'user', id: newOwnerId}}, + ); +} + +function presentVanityUrl(entry: GuildAuditLogEntryResponse, actor: AuditLogPlaceholder): GuildChange | null { + const change = readNullableChange(entry, 'vanity_url_code', readNullableText); + if (change === null) return null; + switch (change.kind) { + case 'added': + return summarizedChange('vanity_url_code', 'add', GUILD_VANITY_URL_SET_ROW, GUILD_VANITY_URL_SET_SUMMARY, actor, { + code: textPlaceholder(change.value), + }); + case 'changed': + return summarizedChange( + 'vanity_url_code', + 'neutral', + GUILD_VANITY_URL_CHANGED_ROW, + GUILD_VANITY_URL_CHANGED_SUMMARY, + actor, + {oldCode: textPlaceholder(change.oldValue), newCode: textPlaceholder(change.newValue)}, + ); + case 'removed': + return summarizedChange( + 'vanity_url_code', + 'remove', + GUILD_VANITY_URL_REMOVED_ROW, + GUILD_VANITY_URL_REMOVED_SUMMARY, + actor, + {code: textPlaceholder(change.value)}, + ); + } +} + +export function presentGuildUpdate(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + const actor = actorPlaceholder(entry); + const features = readFeatureLists(entry); + const changes = [ + presentName(entry, actor), + presentImage(entry, 'icon_hash', ICON_SENTENCES), + presentImage(entry, 'banner_hash', BANNER_SENTENCES), + toggleChange('detached_banner', readFeatureAdded(features, GuildFeatures.DETACHED_BANNER), DETACHED_BANNER_TOGGLE), + presentImage(entry, 'splash_hash', INVITE_BACKGROUND_SENTENCES), + presentLabel( + entry, + 'splash_card_alignment', + SPLASH_CARD_ALIGNMENT_LABELS, + GUILD_INVITE_BACKGROUND_ALIGNMENT_CHANGED_ROW, + 'oldAlignment', + 'newAlignment', + ), + presentImage(entry, 'embed_splash_hash', CHAT_EMBED_BACKGROUND_SENTENCES), + presentChannel(entry, 'system_channel_id', SYSTEM_CHANNEL_SENTENCES), + toggleChange( + 'system_channel_flags', + readTurnedOn(entry, 'system_channel_flags', readJoinMessagesHidden), + JOIN_MESSAGES_HIDDEN_TOGGLE, + ), + presentLabel( + entry, + 'default_message_notifications', + DEFAULT_NOTIFICATIONS_LABELS, + GUILD_DEFAULT_NOTIFICATIONS_CHANGED_ROW, + 'oldSetting', + 'newSetting', + ), + presentChannel(entry, 'afk_channel_id', AFK_CHANNEL_SENTENCES), + presentAfkTimeout(entry), + toggleChange( + 'text_channel_flexible_names', + readFeatureAdded(features, GuildFeatures.TEXT_CHANNEL_FLEXIBLE_NAMES), + FLEXIBLE_TEXT_CHANNEL_NAMES_TOGGLE, + ), + toggleChange( + 'hide_owner_crown', + readFeatureAdded(features, GuildFeatures.HIDE_OWNER_CROWN), + OWNER_CROWN_HIDDEN_TOGGLE, + ), + presentMessageHistoryCutoff(entry), + presentInvitesPaused(features, actor), + toggleChange( + 'emoji_cloning', + readCloningAllowed(features, GuildFeatures.CLONE_EMOJI_ENABLED, GuildFeatures.CLONE_EMOJI_DISABLED), + EMOJI_CLONING_TOGGLE, + ), + toggleChange( + 'sticker_cloning', + readCloningAllowed(features, GuildFeatures.CLONE_STICKER_ENABLED, GuildFeatures.CLONE_STICKER_DISABLED), + STICKER_CLONING_TOGGLE, + ), + presentLabel( + entry, + 'verification_level', + VERIFICATION_LEVEL_LABELS, + GUILD_VERIFICATION_LEVEL_CHANGED_ROW, + 'oldLevel', + 'newLevel', + ), + presentLabel( + entry, + 'explicit_content_filter', + EXPLICIT_CONTENT_FILTER_LABELS, + GUILD_EXPLICIT_CONTENT_FILTER_CHANGED_ROW, + 'oldFilter', + 'newFilter', + ), + toggleChange('mature_content', readMatureContentOn(entry), MATURE_CONTENT_TOGGLE), + toggleChange( + 'content_warning_level', + readTurnedOn(entry, 'content_warning_level', (value) => + readSwitch(value, ContentWarningLevel.INHERIT, ContentWarningLevel.CONTENT_WARNING), + ), + CONTENT_WARNING_TOGGLE, + ), + presentContentWarningText(entry), + toggleChange( + 'mfa_level', + readTurnedOn(entry, 'mfa_level', (value) => readSwitch(value, GuildMFALevel.NONE, GuildMFALevel.ELEVATED)), + MODERATION_2FA_TOGGLE, + ), + presentOwnershipTransfer(entry, actor), + presentVanityUrl(entry, actor), + ].filter((change): change is GuildChange => change !== null); + const onlySummary = changes.length === 1 ? changes[0].summary : null; + if (onlySummary !== null) return {summary: onlySummary, rows: [], blocks: []}; + return { + summary: {descriptor: GUILD_SETTINGS_UPDATED_SUMMARY, values: {actor}}, + rows: changes.map((change) => change.row), + blocks: [], + }; +} diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts new file mode 100644 index 000000000..a04b3c223 --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts @@ -0,0 +1,159 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {msg} from '@lingui/core/macro'; + +export const INVITE_CREATE_FOR_CHANNEL_SUMMARY = msg({ + message: '{actor} created the invite {code} for {channel}.', + comment: + 'Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip.', +}); +export const INVITE_CREATE_SUMMARY = msg({ + message: '{actor} created the invite {code}.', + comment: + 'Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text.', +}); +export const INVITE_NEVER_EXPIRES_ROW = msg({ + message: 'The invite was set to never expire.', + comment: + 'Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders.', +}); +export const INVITE_EXPIRES_AFTER_ROW = msg({ + message: 'The invite was set to expire after {duration}.', + comment: + 'Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes".', +}); +export const INVITE_UNLIMITED_USES_ROW = msg({ + message: 'The invite was set to allow unlimited uses.', + comment: + 'Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders.', +}); +export const INVITE_USE_LIMIT_ROW = msg({ + message: '{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}', + comment: + 'Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working.', +}); +export const INVITE_TEMPORARY_MEMBERSHIP_ROW = msg({ + message: 'The invite was set to grant temporary membership.', + comment: + 'Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders.', +}); +export const INVITE_UPDATE_SUMMARY = msg({ + message: '{actor} updated the invite {code}.', + comment: + 'Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text.', +}); +export const INVITE_DELETE_FOR_CHANNEL_SUMMARY = msg({ + message: '{actor} deleted the invite {code} for {channel}.', + comment: + 'Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip.', +}); +export const INVITE_DELETE_SUMMARY = msg({ + message: '{actor} deleted the invite {code}.', + comment: + 'Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text.', +}); +export const INVITE_CREATED_BY_ON_ROW = msg({ + message: 'The invite was created by {user} on {date}.', + comment: + 'Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time.', +}); +export const INVITE_CREATED_BY_ROW = msg({ + message: 'The invite was created by {user}.', + comment: + 'Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip.', +}); +export const INVITE_CREATED_ON_ROW = msg({ + message: 'The invite was created on {date}.', + comment: + 'Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time.', +}); +export const INVITE_NEVER_USED_ROW = msg({ + message: 'The invite was never used.', + comment: + 'Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders.', +}); +export const INVITE_USE_COUNT_ROW = msg({ + message: '{count, plural, one {The invite was used # time.} other {The invite was used # times.}}', + comment: + 'Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted.', +}); +export const INVITE_EXPIRES_ON_ROW = msg({ + message: 'The invite was scheduled to expire on {date}.', + comment: + 'Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time.', +}); +export const WEBHOOK_CREATE_IN_CHANNEL_SUMMARY = msg({ + message: '{actor} created the webhook {name} in {channel}.', + comment: + 'Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip.', +}); +export const WEBHOOK_CREATE_SUMMARY = msg({ + message: '{actor} created the webhook {name}.', + comment: + 'Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it.', +}); +export const WEBHOOK_CREATE_UNNAMED_SUMMARY = msg({ + message: '{actor} created a webhook.', + comment: + 'Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System.', +}); +export const WEBHOOK_RENAME_SUMMARY = msg({ + message: '{actor} renamed the webhook {oldName} to {newName}.', + comment: + 'Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them.', +}); +export const WEBHOOK_UPDATE_SUMMARY = msg({ + message: '{actor} updated the webhook {name}.', + comment: + 'Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it.', +}); +export const WEBHOOK_UPDATE_UNNAMED_SUMMARY = msg({ + message: '{actor} updated a webhook.', + comment: + 'Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System.', +}); +export const WEBHOOK_NAME_CHANGED_ROW = msg({ + message: 'Changed the name from {oldName} to {newName}.', + comment: + 'Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them.', +}); +export const WEBHOOK_CHANNEL_CHANGED_ROW = msg({ + message: 'Moved from {oldChannel} to {newChannel}.', + comment: + 'Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips.', +}); +export const WEBHOOK_AVATAR_ADDED_ROW = msg({ + message: 'Added an avatar.', + comment: + 'Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders.', +}); +export const WEBHOOK_AVATAR_CHANGED_ROW = msg({ + message: 'Changed the avatar.', + comment: + 'Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders.', +}); +export const WEBHOOK_AVATAR_REMOVED_ROW = msg({ + message: 'Removed the avatar.', + comment: + 'Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders.', +}); +export const WEBHOOK_DELETE_FROM_CHANNEL_SUMMARY = msg({ + message: '{actor} deleted the webhook {name} from {channel}.', + comment: + 'Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip.', +}); +export const WEBHOOK_DELETE_SUMMARY = msg({ + message: '{actor} deleted the webhook {name}.', + comment: + 'Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it.', +}); +export const WEBHOOK_DELETE_UNNAMED_SUMMARY = msg({ + message: '{actor} deleted a webhook.', + comment: + 'Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System.', +}); +export const WEBHOOK_CREATED_BY_ROW = msg({ + message: 'The webhook was created by {user}.', + comment: + 'Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip.', +}); diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookPresentation.test.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookPresentation.test.ts new file mode 100644 index 000000000..aaaa4045e --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookPresentation.test.ts @@ -0,0 +1,641 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {presentAuditLogEntry} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogPresentation'; +import type {AuditLogPresentationContext} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogPresentationTypes'; +import { + fakeContext, + makeEntry, + resultToText, + TEST_ACTOR_ID, + TEST_GUILD_ID, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogTestUtils'; +import {AuditLogActionType} from '@fluxer/constants/src/AuditLogActionType'; +import {describe, expect, it, vi} from 'vitest'; + +vi.mock('@lingui/core/macro', () => { + const descriptor = (value: unknown): unknown => (typeof value === 'string' ? {message: value} : value); + return {msg: descriptor, t: descriptor, plural: () => '', select: () => '', selectOrdinal: () => ''}; +}); + +vi.mock('@app/features/app/config/Config', () => ({ + default: { + PUBLIC_BUILD_VERSION: 'test', + PUBLIC_RELEASE_CHANNEL: 'canary', + PUBLIC_BOOTSTRAP_API_ENDPOINT: 'https://example.invalid', + PUBLIC_BOOTSTRAP_API_PUBLIC_ENDPOINT: 'https://example.invalid', + }, +})); + +type EntryFixture = Parameters[0]; +type ChangeFixture = NonNullable; + +const ALICE_ID = '1400000000000000002'; +const CHANNEL_ID = '1400000000000000200'; +const OTHER_CHANNEL_ID = '1400000000000000201'; +const WEBHOOK_ID = '1400000000000000300'; +const INVITE_CODE = 'aB3dE9xZ'; +const USER_NAMES = {[TEST_ACTOR_ID]: 'Hampus', [ALICE_ID]: 'Alice'}; + +function present(fixture: EntryFixture, context: AuditLogPresentationContext = fakeContext()) { + const presentation = presentAuditLogEntry(makeEntry(fixture), context); + return {...resultToText(presentation, USER_NAMES), expandable: presentation.expandable}; +} + +function snapshot(side: 'old_value' | 'new_value', values: Record): ChangeFixture { + return Object.entries(values).map(([key, value]) => ({key, [side]: value})); +} + +interface InviteSettingsFixture { + max_age: number; + max_uses: number; + temporary: boolean; +} + +function inviteCreate(settings: InviteSettingsFixture): EntryFixture { + return { + action_type: AuditLogActionType.INVITE_CREATE, + target_id: INVITE_CODE, + options: {...settings, channel_id: CHANNEL_ID, inviter_id: TEST_ACTOR_ID}, + changes: snapshot('new_value', { + code: INVITE_CODE, + channel_id: CHANNEL_ID, + guild_id: TEST_GUILD_ID, + inviter_id: TEST_ACTOR_ID, + uses: 0, + ...settings, + created_at: '2026-09-01T11:59:59.990Z', + }), + }; +} + +interface InviteDeleteFixture extends InviteSettingsFixture { + user_id?: string; + inviter_id: string; + uses: number; + created_at?: string; +} + +function inviteDelete({user_id, inviter_id, uses, created_at, ...settings}: InviteDeleteFixture): EntryFixture { + return { + action_type: AuditLogActionType.INVITE_DELETE, + user_id: user_id ?? TEST_ACTOR_ID, + target_id: INVITE_CODE, + options: {...settings, channel_id: CHANNEL_ID, inviter_id}, + changes: snapshot('old_value', { + code: INVITE_CODE, + channel_id: CHANNEL_ID, + guild_id: TEST_GUILD_ID, + inviter_id, + uses, + ...settings, + ...(created_at === undefined ? {} : {created_at}), + }), + }; +} + +function webhookSnapshot(side: 'old_value' | 'new_value', creatorId: string): ChangeFixture { + return snapshot(side, { + id: WEBHOOK_ID, + guild_id: TEST_GUILD_ID, + channel_id: CHANNEL_ID, + name: 'Captain Hook', + creator_id: creatorId, + avatar_hash: null, + type: 1, + }); +} + +function webhookUpdate(changes: ChangeFixture | undefined): EntryFixture { + return { + action_type: AuditLogActionType.WEBHOOK_UPDATE, + target_id: WEBHOOK_ID, + options: {channel_id: CHANNEL_ID}, + changes, + }; +} + +const WEBHOOK_NAMES = fakeContext({webhooks: {[WEBHOOK_ID]: 'Captain Hook'}}); + +describe('presentInviteCreate', () => { + it('describes an invite created with the app defaults', () => { + expect(present(inviteCreate({max_age: 604800, max_uses: 0, temporary: false}))).toEqual({ + summary: `Hampus created the invite aB3dE9xZ for #${CHANNEL_ID}.`, + rows: ['~ The invite was set to expire after 7 days.', '~ The invite was set to allow unlimited uses.'], + blocks: [], + expandable: true, + }); + }); + + it('describes a 30 minute single use invite that grants temporary membership', () => { + expect(present(inviteCreate({max_age: 1800, max_uses: 1, temporary: true}))).toEqual({ + summary: `Hampus created the invite aB3dE9xZ for #${CHANNEL_ID}.`, + rows: [ + '~ The invite was set to expire after 30 minutes.', + '~ The invite was limited to 1 use.', + '~ The invite was set to grant temporary membership.', + ], + blocks: [], + expandable: true, + }); + }); + + it('renders a 5400 second expiry as 90 minutes and pluralizes the use limit', () => { + expect(present(inviteCreate({max_age: 5400, max_uses: 25, temporary: false})).rows).toEqual([ + '~ The invite was set to expire after 90 minutes.', + '~ The invite was limited to 25 uses.', + ]); + }); + + it('reads the dispatch string form of the options', () => { + expect( + present({ + action_type: AuditLogActionType.INVITE_CREATE, + target_id: INVITE_CODE, + options: { + max_uses: '10', + max_age: '0', + temporary: 'true', + channel_id: CHANNEL_ID, + inviter_id: TEST_ACTOR_ID, + }, + }), + ).toEqual({ + summary: `Hampus created the invite aB3dE9xZ for #${CHANNEL_ID}.`, + rows: [ + '~ The invite was set to never expire.', + '~ The invite was limited to 10 uses.', + '~ The invite was set to grant temporary membership.', + ], + blocks: [], + expandable: true, + }); + }); + + it('leaves the channel out of the summary when no channel id was recorded', () => { + const {options, changes, ...fixture} = inviteCreate({max_age: 604800, max_uses: 0, temporary: false}); + const {channel_id: _channelId, ...optionsWithoutChannel} = options ?? {}; + expect( + present({ + ...fixture, + options: optionsWithoutChannel, + changes: changes?.filter((change) => change.key !== 'channel_id'), + }), + ).toEqual({ + summary: 'Hampus created the invite aB3dE9xZ.', + rows: ['~ The invite was set to expire after 7 days.', '~ The invite was set to allow unlimited uses.'], + blocks: [], + expandable: true, + }); + }); + + it('falls back to the changes for the code, channel and settings when options are missing', () => { + const {options: _options, ...fixture} = inviteCreate({max_age: 3600, max_uses: 5, temporary: true}); + expect(present({...fixture, target_id: null})).toEqual({ + summary: `Hampus created the invite aB3dE9xZ for #${CHANNEL_ID}.`, + rows: [ + '~ The invite was set to expire after 1 hour.', + '~ The invite was limited to 5 uses.', + '~ The invite was set to grant temporary membership.', + ], + blocks: [], + expandable: true, + }); + }); + + it('omits the channel and every row whose value cannot be read', () => { + expect( + present({ + action_type: AuditLogActionType.INVITE_CREATE, + user_id: '0', + target_id: INVITE_CODE, + options: {max_age: -60, max_uses: 1.5, temporary: 'yes', channel_id: 'general'}, + changes: [ + {key: 'max_age', new_value: 'forever'}, + {key: 'max_uses', new_value: null}, + {key: 'temporary', new_value: 1}, + {key: 'channel_id', new_value: 42}, + ], + }), + ).toEqual({ + summary: 'System created the invite aB3dE9xZ.', + rows: [], + blocks: [], + expandable: false, + }); + }); +}); + +describe('presentInviteUpdate', () => { + it('summarizes the invite without rows', () => { + expect( + present({ + action_type: AuditLogActionType.INVITE_UPDATE, + target_id: INVITE_CODE, + options: {max_age: 0, max_uses: 3, channel_id: CHANNEL_ID}, + }), + ).toEqual({ + summary: 'Hampus updated the invite aB3dE9xZ.', + rows: [], + blocks: [], + expandable: false, + }); + }); +}); + +describe('presentInviteDelete', () => { + it('describes an own invite deleted after 3 uses with its expiry date', () => { + expect( + present( + inviteDelete({ + inviter_id: TEST_ACTOR_ID, + uses: 3, + max_uses: 0, + max_age: 604800, + temporary: false, + created_at: '2026-08-30T12:00:00.000Z', + }), + ), + ).toEqual({ + summary: `Hampus deleted the invite aB3dE9xZ for #${CHANNEL_ID}.`, + rows: [ + '~ The invite was created on 2026-08-30T12:00:00.000Z.', + '~ The invite was used 3 times.', + '~ The invite was scheduled to expire on 2026-09-06T12:00:00.000Z.', + '~ The invite was set to allow unlimited uses.', + ], + blocks: [], + expandable: true, + }); + }); + + it("names the creator when a moderator deletes another member's temporary invite", () => { + expect( + present( + inviteDelete({ + inviter_id: ALICE_ID, + uses: 1, + max_uses: 5, + max_age: 0, + temporary: true, + created_at: '2026-08-31T08:30:00.000Z', + }), + ), + ).toEqual({ + summary: `Hampus deleted the invite aB3dE9xZ for #${CHANNEL_ID}.`, + rows: [ + '~ The invite was created by Alice on 2026-08-31T08:30:00.000Z.', + '~ The invite was used 1 time.', + '~ The invite was set to never expire.', + '~ The invite was limited to 5 uses.', + '~ The invite was set to grant temporary membership.', + ], + blocks: [], + expandable: true, + }); + }); + + it('names the creator without a date and gives the expiry as a duration when created_at is missing', () => { + expect( + present(inviteDelete({inviter_id: ALICE_ID, uses: 0, max_uses: 1, max_age: 86400, temporary: false})), + ).toEqual({ + summary: `Hampus deleted the invite aB3dE9xZ for #${CHANNEL_ID}.`, + rows: [ + '~ The invite was created by Alice.', + '~ The invite was never used.', + '~ The invite was set to expire after 1 day.', + '~ The invite was limited to 1 use.', + ], + blocks: [], + expandable: true, + }); + }); + + it('gives no creator row for an own invite without created_at and says a max_age of 0 never expires', () => { + expect( + present(inviteDelete({inviter_id: TEST_ACTOR_ID, uses: 0, max_uses: 0, max_age: 0, temporary: false})).rows, + ).toEqual([ + '~ The invite was never used.', + '~ The invite was set to never expire.', + '~ The invite was set to allow unlimited uses.', + ]); + }); + + it('reads the dispatch string form of the options', () => { + expect( + present({ + action_type: AuditLogActionType.INVITE_DELETE, + target_id: INVITE_CODE, + options: { + max_uses: '2', + max_age: '3600', + temporary: 'false', + channel_id: CHANNEL_ID, + inviter_id: ALICE_ID, + }, + changes: [ + {key: 'uses', old_value: 2}, + {key: 'created_at', old_value: '2026-09-01T10:00:00.000Z'}, + ], + }).rows, + ).toEqual([ + '~ The invite was created by Alice on 2026-09-01T10:00:00.000Z.', + '~ The invite was used 2 times.', + '~ The invite was scheduled to expire on 2026-09-01T11:00:00.000Z.', + '~ The invite was limited to 2 uses.', + ]); + }); + + it('falls back to the changes for the code, channel, inviter and settings when options are missing', () => { + const {options: _options, ...fixture} = inviteDelete({ + inviter_id: ALICE_ID, + uses: 4, + max_uses: 10, + max_age: 1800, + temporary: true, + created_at: '2026-09-01T11:00:00.000Z', + }); + expect(present({...fixture, target_id: null})).toEqual({ + summary: `Hampus deleted the invite aB3dE9xZ for #${CHANNEL_ID}.`, + rows: [ + '~ The invite was created by Alice on 2026-09-01T11:00:00.000Z.', + '~ The invite was used 4 times.', + '~ The invite was scheduled to expire on 2026-09-01T11:30:00.000Z.', + '~ The invite was limited to 10 uses.', + '~ The invite was set to grant temporary membership.', + ], + blocks: [], + expandable: true, + }); + }); + + it('omits the channel and every row whose value cannot be read', () => { + expect( + present({ + action_type: AuditLogActionType.INVITE_DELETE, + target_id: INVITE_CODE, + options: {inviter_id: 'alice', max_age: 'never', channel_id: ''}, + changes: [ + {key: 'uses', old_value: 'many'}, + {key: 'created_at', old_value: 'yesterday'}, + {key: 'inviter_id', old_value: 42}, + {key: 'max_uses', old_value: -1}, + {key: 'temporary', old_value: 'maybe'}, + ], + }), + ).toEqual({ + summary: 'Hampus deleted the invite aB3dE9xZ.', + rows: [], + blocks: [], + expandable: false, + }); + }); +}); + +describe('presentWebhookCreate', () => { + it('names the webhook and its channel', () => { + expect( + present({ + action_type: AuditLogActionType.WEBHOOK_CREATE, + target_id: WEBHOOK_ID, + options: {channel_id: CHANNEL_ID}, + changes: webhookSnapshot('new_value', TEST_ACTOR_ID), + }), + ).toEqual({ + summary: `Hampus created the webhook Captain Hook in #${CHANNEL_ID}.`, + rows: [], + blocks: [], + expandable: false, + }); + }); + + it('names the webhook without a channel when none was recorded', () => { + expect( + present({ + action_type: AuditLogActionType.WEBHOOK_CREATE, + target_id: WEBHOOK_ID, + changes: webhookSnapshot('new_value', TEST_ACTOR_ID).filter((change) => change.key !== 'channel_id'), + }).summary, + ).toBe('Hampus created the webhook Captain Hook.'); + }); + + it('says a webhook was created when no name was recorded', () => { + expect( + present({ + action_type: AuditLogActionType.WEBHOOK_CREATE, + target_id: WEBHOOK_ID, + options: {channel_id: CHANNEL_ID}, + }), + ).toEqual({summary: 'Hampus created a webhook.', rows: [], blocks: [], expandable: false}); + }); + + it('takes the channel from the changes when the option is missing', () => { + expect( + present({ + action_type: AuditLogActionType.WEBHOOK_CREATE, + target_id: WEBHOOK_ID, + changes: webhookSnapshot('new_value', TEST_ACTOR_ID), + }).summary, + ).toBe(`Hampus created the webhook Captain Hook in #${CHANNEL_ID}.`); + }); + + it('is expandable only for the decoded Reason block', () => { + expect( + present({ + action_type: AuditLogActionType.WEBHOOK_CREATE, + target_id: WEBHOOK_ID, + reason: 'Release%20notes', + options: {channel_id: CHANNEL_ID}, + changes: webhookSnapshot('new_value', TEST_ACTOR_ID), + }), + ).toEqual({ + summary: `Hampus created the webhook Captain Hook in #${CHANNEL_ID}.`, + rows: [], + blocks: [{kind: 'reason', text: 'Release notes'}], + expandable: true, + }); + }); +}); + +describe('presentWebhookUpdate', () => { + it('summarizes a rename alone without rows', () => { + expect(present(webhookUpdate([{key: 'name', old_value: 'Hook A', new_value: 'Hook B'}]), WEBHOOK_NAMES)).toEqual({ + summary: 'Hampus renamed the webhook Hook A to Hook B.', + rows: [], + blocks: [], + expandable: false, + }); + }); + + it('marks an added avatar', () => { + expect( + present(webhookUpdate([{key: 'avatar_hash', old_value: null, new_value: 'a1b2c3d4'}]), WEBHOOK_NAMES), + ).toEqual({ + summary: 'Hampus updated the webhook Captain Hook.', + rows: ['+ Added an avatar.'], + blocks: [], + expandable: true, + }); + }); + + it('marks a replaced avatar', () => { + expect( + present(webhookUpdate([{key: 'avatar_hash', old_value: 'a1b2c3d4', new_value: 'a_9f8e7d6c'}]), WEBHOOK_NAMES) + .rows, + ).toEqual(['~ Changed the avatar.']); + }); + + it('marks a removed avatar', () => { + expect( + present(webhookUpdate([{key: 'avatar_hash', old_value: 'a1b2c3d4', new_value: null}]), WEBHOOK_NAMES).rows, + ).toEqual(['- Removed the avatar.']); + }); + + it('describes a move between channels', () => { + expect( + present(webhookUpdate([{key: 'channel_id', old_value: CHANNEL_ID, new_value: OTHER_CHANNEL_ID}]), WEBHOOK_NAMES), + ).toEqual({ + summary: 'Hampus updated the webhook Captain Hook.', + rows: [`~ Moved from #${CHANNEL_ID} to #${OTHER_CHANNEL_ID}.`], + blocks: [], + expandable: true, + }); + }); + + it('lists every change of a multi-field update in name, channel and avatar order under the new name', () => { + expect( + present( + webhookUpdate([ + {key: 'channel_id', old_value: CHANNEL_ID, new_value: OTHER_CHANNEL_ID}, + {key: 'name', old_value: 'Hook A', new_value: 'Hook B'}, + {key: 'avatar_hash', old_value: 'a1b2c3d4', new_value: null}, + ]), + WEBHOOK_NAMES, + ), + ).toEqual({ + summary: 'Hampus updated the webhook Hook B.', + rows: [ + '~ Changed the name from Hook A to Hook B.', + `~ Moved from #${CHANNEL_ID} to #${OTHER_CHANNEL_ID}.`, + '- Removed the avatar.', + ], + blocks: [], + expandable: true, + }); + }); + + it('takes the name from the context when the name did not change', () => { + expect(present(webhookUpdate(undefined), WEBHOOK_NAMES)).toEqual({ + summary: 'Hampus updated the webhook Captain Hook.', + rows: [], + blocks: [], + expandable: false, + }); + }); + + it('says a webhook was updated when the name is unknown', () => { + expect(present(webhookUpdate([{key: 'avatar_hash', old_value: null, new_value: 'a1b2c3d4'}]))).toEqual({ + summary: 'Hampus updated a webhook.', + rows: ['+ Added an avatar.'], + blocks: [], + expandable: true, + }); + }); + + it('omits rows for unchanged or unreadable values', () => { + expect( + present( + webhookUpdate([ + {key: 'name', old_value: 'Hook', new_value: ' Hook '}, + {key: 'channel_id', old_value: CHANNEL_ID, new_value: 'general'}, + {key: 'avatar_hash', old_value: 12345, new_value: null}, + ]), + ), + ).toEqual({summary: 'Hampus updated the webhook Hook.', rows: [], blocks: [], expandable: false}); + expect( + present( + webhookUpdate([ + {key: 'channel_id', old_value: CHANNEL_ID, new_value: CHANNEL_ID}, + {key: 'avatar_hash', old_value: '', new_value: null}, + ]), + ), + ).toEqual({summary: 'Hampus updated a webhook.', rows: [], blocks: [], expandable: false}); + }); + + it('does not use the rename summary when the previous name cannot be read', () => { + expect(present(webhookUpdate([{key: 'name', old_value: ' ', new_value: 'Hook B'}]), WEBHOOK_NAMES)).toEqual({ + summary: 'Hampus updated the webhook Hook B.', + rows: [], + blocks: [], + expandable: false, + }); + }); +}); + +describe('presentWebhookDelete', () => { + it('describes an own webhook deleted from its channel without rows', () => { + expect( + present({ + action_type: AuditLogActionType.WEBHOOK_DELETE, + target_id: WEBHOOK_ID, + options: {channel_id: CHANNEL_ID}, + changes: webhookSnapshot('old_value', TEST_ACTOR_ID), + }), + ).toEqual({ + summary: `Hampus deleted the webhook Captain Hook from #${CHANNEL_ID}.`, + rows: [], + blocks: [], + expandable: false, + }); + }); + + it("names the creator of another member's webhook", () => { + expect( + present({ + action_type: AuditLogActionType.WEBHOOK_DELETE, + target_id: WEBHOOK_ID, + options: {channel_id: CHANNEL_ID}, + changes: webhookSnapshot('old_value', ALICE_ID), + }), + ).toEqual({ + summary: `Hampus deleted the webhook Captain Hook from #${CHANNEL_ID}.`, + rows: ['~ The webhook was created by Alice.'], + blocks: [], + expandable: true, + }); + }); + + it('leaves the channel out when none was recorded', () => { + expect( + present({ + action_type: AuditLogActionType.WEBHOOK_DELETE, + target_id: WEBHOOK_ID, + changes: webhookSnapshot('old_value', ALICE_ID).filter((change) => change.key !== 'channel_id'), + }), + ).toEqual({ + summary: 'Hampus deleted the webhook Captain Hook.', + rows: ['~ The webhook was created by Alice.'], + blocks: [], + expandable: true, + }); + }); + + it('says a webhook was deleted when no name was recorded and ignores an unreadable creator', () => { + expect( + present({ + action_type: AuditLogActionType.WEBHOOK_DELETE, + target_id: WEBHOOK_ID, + options: {channel_id: CHANNEL_ID}, + changes: [{key: 'creator_id', old_value: 1400}], + }), + ).toEqual({summary: 'Hampus deleted a webhook.', rows: [], blocks: [], expandable: false}); + }); + + it('ignores a name from the context for a deleted webhook', () => { + expect( + present( + {action_type: AuditLogActionType.WEBHOOK_DELETE, target_id: WEBHOOK_ID, options: {channel_id: CHANNEL_ID}}, + WEBHOOK_NAMES, + ).summary, + ).toBe('Hampus deleted a webhook.'); + }); +}); diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookPresentation.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookPresentation.ts new file mode 100644 index 000000000..9d1609941 --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookPresentation.ts @@ -0,0 +1,324 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import { + INVITE_CREATE_FOR_CHANNEL_SUMMARY, + INVITE_CREATE_SUMMARY, + INVITE_CREATED_BY_ON_ROW, + INVITE_CREATED_BY_ROW, + INVITE_CREATED_ON_ROW, + INVITE_DELETE_FOR_CHANNEL_SUMMARY, + INVITE_DELETE_SUMMARY, + INVITE_EXPIRES_AFTER_ROW, + INVITE_EXPIRES_ON_ROW, + INVITE_NEVER_EXPIRES_ROW, + INVITE_NEVER_USED_ROW, + INVITE_TEMPORARY_MEMBERSHIP_ROW, + INVITE_UNLIMITED_USES_ROW, + INVITE_UPDATE_SUMMARY, + INVITE_USE_COUNT_ROW, + INVITE_USE_LIMIT_ROW, + WEBHOOK_AVATAR_ADDED_ROW, + WEBHOOK_AVATAR_CHANGED_ROW, + WEBHOOK_AVATAR_REMOVED_ROW, + WEBHOOK_CHANNEL_CHANGED_ROW, + WEBHOOK_CREATE_IN_CHANNEL_SUMMARY, + WEBHOOK_CREATE_SUMMARY, + WEBHOOK_CREATE_UNNAMED_SUMMARY, + WEBHOOK_CREATED_BY_ROW, + WEBHOOK_DELETE_FROM_CHANNEL_SUMMARY, + WEBHOOK_DELETE_SUMMARY, + WEBHOOK_DELETE_UNNAMED_SUMMARY, + WEBHOOK_NAME_CHANGED_ROW, + WEBHOOK_RENAME_SUMMARY, + WEBHOOK_UPDATE_SUMMARY, + WEBHOOK_UPDATE_UNNAMED_SUMMARY, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages'; +import type { + AuditLogDetailRow, + AuditLogDomainResult, + AuditLogPlaceholder, + AuditLogPresentationContext, + AuditLogSentence, + AuditLogTone, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogPresentationTypes'; +import { + actorPlaceholder, + readBoolean, + readChange, + readNumber, + readOption, + readSnowflake, + readString, + readTimestamp, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogValues'; +import {MS_PER_SECOND} from '@fluxer/date_utils/src/DateConstants'; +import type {GuildAuditLogEntryResponse} from '@fluxer/schema/src/domains/guild/GuildAuditLogSchemas'; +import type {MessageDescriptor} from '@lingui/core'; + +type ChangeSide = 'old' | 'new'; + +interface InviteSettings { + maxAge: number | null; + maxUses: number | null; + temporary: boolean | null; +} + +interface WebhookSnapshotSummaries { + inChannel: MessageDescriptor; + named: MessageDescriptor; + unnamed: MessageDescriptor; +} + +function readChangeSide(entry: GuildAuditLogEntryResponse, key: string, side: ChangeSide): unknown { + const change = readChange(entry, key); + if (change === null) return null; + return side === 'old' ? change.oldValue : change.newValue; +} + +function readCount(value: unknown): number | null { + const count = readNumber(value); + return count !== null && Number.isInteger(count) && count >= 0 ? count : null; +} + +function row( + id: string, + tone: AuditLogTone, + descriptor: MessageDescriptor, + values: AuditLogSentence['values'] = {}, +): AuditLogDetailRow { + return {id, tone, sentence: {descriptor, values}}; +} + +function channelPlaceholder(id: string): AuditLogPlaceholder { + return {kind: 'channel', id, recordedName: null, fallback: 'channel'}; +} + +function readSnapshotChannelId(entry: GuildAuditLogEntryResponse, side: ChangeSide): string | null { + return readSnowflake(readOption(entry, 'channel_id')) ?? readSnowflake(readChangeSide(entry, 'channel_id', side)); +} + +function inviteCodePlaceholder(entry: GuildAuditLogEntryResponse, side: ChangeSide): AuditLogPlaceholder { + const code = readString(entry.target_id) ?? readString(readChangeSide(entry, 'code', side)); + return {kind: 'text', value: code ?? ''}; +} + +function readInviteSettings(entry: GuildAuditLogEntryResponse, side: ChangeSide): InviteSettings { + return { + maxAge: readCount(readOption(entry, 'max_age')) ?? readCount(readChangeSide(entry, 'max_age', side)), + maxUses: readCount(readOption(entry, 'max_uses')) ?? readCount(readChangeSide(entry, 'max_uses', side)), + temporary: readBoolean(readOption(entry, 'temporary')) ?? readBoolean(readChangeSide(entry, 'temporary', side)), + }; +} + +function inviteSnapshotSummary( + entry: GuildAuditLogEntryResponse, + side: ChangeSide, + inChannel: MessageDescriptor, + withoutChannel: MessageDescriptor, +): AuditLogSentence { + const actor = actorPlaceholder(entry); + const code = inviteCodePlaceholder(entry, side); + const channelId = readSnapshotChannelId(entry, side); + return channelId === null + ? {descriptor: withoutChannel, values: {actor, code}} + : {descriptor: inChannel, values: {actor, code, channel: channelPlaceholder(channelId)}}; +} + +function inviteMaxAgeRow(maxAge: number): AuditLogDetailRow { + return maxAge === 0 + ? row('max_age', 'neutral', INVITE_NEVER_EXPIRES_ROW) + : row('max_age', 'neutral', INVITE_EXPIRES_AFTER_ROW, {duration: {kind: 'duration', seconds: maxAge}}); +} + +function inviteMaxUsesRow(maxUses: number): AuditLogDetailRow { + return maxUses === 0 + ? row('max_uses', 'neutral', INVITE_UNLIMITED_USES_ROW) + : row('max_uses', 'neutral', INVITE_USE_LIMIT_ROW, {count: maxUses}); +} + +function inviteTemporaryRow(): AuditLogDetailRow { + return row('temporary', 'neutral', INVITE_TEMPORARY_MEMBERSHIP_ROW); +} + +function inviteCreatorRow(creatorId: string | null, createdAt: number | null): AuditLogDetailRow | null { + if (creatorId !== null && createdAt !== null) { + return row('creator', 'neutral', INVITE_CREATED_BY_ON_ROW, { + user: {kind: 'user', id: creatorId}, + date: {kind: 'date', timestamp: createdAt}, + }); + } + if (creatorId !== null) { + return row('creator', 'neutral', INVITE_CREATED_BY_ROW, {user: {kind: 'user', id: creatorId}}); + } + if (createdAt !== null) { + return row('creator', 'neutral', INVITE_CREATED_ON_ROW, {date: {kind: 'date', timestamp: createdAt}}); + } + return null; +} + +function inviteUsesRow(uses: number): AuditLogDetailRow { + return uses === 0 + ? row('uses', 'neutral', INVITE_NEVER_USED_ROW) + : row('uses', 'neutral', INVITE_USE_COUNT_ROW, {count: uses}); +} + +export function presentInviteCreate(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + const {maxAge, maxUses, temporary} = readInviteSettings(entry, 'new'); + const rows: Array = []; + if (maxAge !== null) rows.push(inviteMaxAgeRow(maxAge)); + if (maxUses !== null) rows.push(inviteMaxUsesRow(maxUses)); + if (temporary === true) rows.push(inviteTemporaryRow()); + return { + summary: inviteSnapshotSummary(entry, 'new', INVITE_CREATE_FOR_CHANNEL_SUMMARY, INVITE_CREATE_SUMMARY), + rows, + blocks: [], + }; +} + +export function presentInviteUpdate(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + return { + summary: { + descriptor: INVITE_UPDATE_SUMMARY, + values: {actor: actorPlaceholder(entry), code: inviteCodePlaceholder(entry, 'new')}, + }, + rows: [], + blocks: [], + }; +} + +export function presentInviteDelete(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + const {maxAge, maxUses, temporary} = readInviteSettings(entry, 'old'); + const inviterId = + readSnowflake(readOption(entry, 'inviter_id')) ?? readSnowflake(readChangeSide(entry, 'inviter_id', 'old')); + const creatorId = inviterId !== null && inviterId !== entry.user_id ? inviterId : null; + const createdAt = readTimestamp(readChangeSide(entry, 'created_at', 'old')); + const uses = readCount(readChangeSide(entry, 'uses', 'old')); + const rows: Array = []; + const creatorRow = inviteCreatorRow(creatorId, createdAt); + if (creatorRow !== null) rows.push(creatorRow); + if (uses !== null) rows.push(inviteUsesRow(uses)); + if (maxAge !== null && maxAge > 0 && createdAt !== null) { + rows.push( + row('max_age', 'neutral', INVITE_EXPIRES_ON_ROW, { + date: {kind: 'date', timestamp: createdAt + maxAge * MS_PER_SECOND}, + }), + ); + } else if (maxAge !== null) { + rows.push(inviteMaxAgeRow(maxAge)); + } + if (maxUses !== null) rows.push(inviteMaxUsesRow(maxUses)); + if (temporary === true) rows.push(inviteTemporaryRow()); + return { + summary: inviteSnapshotSummary(entry, 'old', INVITE_DELETE_FOR_CHANNEL_SUMMARY, INVITE_DELETE_SUMMARY), + rows, + blocks: [], + }; +} + +function webhookSnapshotSummary( + entry: GuildAuditLogEntryResponse, + side: ChangeSide, + summaries: WebhookSnapshotSummaries, +): AuditLogSentence { + const actor = actorPlaceholder(entry); + const name = readString(readChangeSide(entry, 'name', side)); + if (name === null) return {descriptor: summaries.unnamed, values: {actor}}; + const channelId = readSnapshotChannelId(entry, side); + return channelId === null + ? {descriptor: summaries.named, values: {actor, name: {kind: 'name', value: name}}} + : { + descriptor: summaries.inChannel, + values: {actor, name: {kind: 'name', value: name}, channel: channelPlaceholder(channelId)}, + }; +} + +function isAvatarHashValue(value: unknown): boolean { + return value === null || typeof value === 'string'; +} + +function webhookAvatarRow(entry: GuildAuditLogEntryResponse): AuditLogDetailRow | null { + const change = readChange(entry, 'avatar_hash'); + if (change === null || !isAvatarHashValue(change.oldValue) || !isAvatarHashValue(change.newValue)) return null; + const previous = readString(change.oldValue); + const next = readString(change.newValue); + if (previous === next) return null; + if (previous === null) return row('avatar_hash', 'add', WEBHOOK_AVATAR_ADDED_ROW); + if (next === null) return row('avatar_hash', 'remove', WEBHOOK_AVATAR_REMOVED_ROW); + return row('avatar_hash', 'neutral', WEBHOOK_AVATAR_CHANGED_ROW); +} + +function webhookChannelRow(entry: GuildAuditLogEntryResponse): AuditLogDetailRow | null { + const change = readChange(entry, 'channel_id'); + const previous = readSnowflake(change?.oldValue); + const next = readSnowflake(change?.newValue); + if (previous === null || next === null || previous === next) return null; + return row('channel_id', 'neutral', WEBHOOK_CHANNEL_CHANGED_ROW, { + oldChannel: channelPlaceholder(previous), + newChannel: channelPlaceholder(next), + }); +} + +function readKnownWebhookName(entry: GuildAuditLogEntryResponse, context: AuditLogPresentationContext): string | null { + const webhookId = readSnowflake(entry.target_id); + return webhookId === null ? null : readString(context.getWebhookName(webhookId)); +} + +export function presentWebhookCreate(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + return { + summary: webhookSnapshotSummary(entry, 'new', { + inChannel: WEBHOOK_CREATE_IN_CHANNEL_SUMMARY, + named: WEBHOOK_CREATE_SUMMARY, + unnamed: WEBHOOK_CREATE_UNNAMED_SUMMARY, + }), + rows: [], + blocks: [], + }; +} + +export function presentWebhookUpdate( + entry: GuildAuditLogEntryResponse, + context: AuditLogPresentationContext, +): AuditLogDomainResult { + const actor = actorPlaceholder(entry); + const nameChange = readChange(entry, 'name'); + const oldName = readString(nameChange?.oldValue); + const newName = readString(nameChange?.newValue); + const rename: Record<'oldName' | 'newName', AuditLogPlaceholder> | null = + oldName !== null && newName !== null && oldName !== newName + ? {oldName: {kind: 'name', value: oldName}, newName: {kind: 'name', value: newName}} + : null; + const channelRow = webhookChannelRow(entry); + const avatarRow = webhookAvatarRow(entry); + const rows: Array = []; + if (rename !== null) rows.push(row('name', 'neutral', WEBHOOK_NAME_CHANGED_ROW, rename)); + if (channelRow !== null) rows.push(channelRow); + if (avatarRow !== null) rows.push(avatarRow); + if (rename !== null && rows.length === 1) { + return {summary: {descriptor: WEBHOOK_RENAME_SUMMARY, values: {actor, ...rename}}, rows: [], blocks: []}; + } + const name = newName ?? readKnownWebhookName(entry, context); + return { + summary: + name === null + ? {descriptor: WEBHOOK_UPDATE_UNNAMED_SUMMARY, values: {actor}} + : {descriptor: WEBHOOK_UPDATE_SUMMARY, values: {actor, name: {kind: 'name', value: name}}}, + rows, + blocks: [], + }; +} + +export function presentWebhookDelete(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + const creatorId = readSnowflake(readChangeSide(entry, 'creator_id', 'old')); + return { + summary: webhookSnapshotSummary(entry, 'old', { + inChannel: WEBHOOK_DELETE_FROM_CHANNEL_SUMMARY, + named: WEBHOOK_DELETE_SUMMARY, + unnamed: WEBHOOK_DELETE_UNNAMED_SUMMARY, + }), + rows: + creatorId !== null && creatorId !== entry.user_id + ? [row('creator', 'neutral', WEBHOOK_CREATED_BY_ROW, {user: {kind: 'user', id: creatorId}})] + : [], + blocks: [], + }; +} diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts new file mode 100644 index 000000000..bc477ee91 --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts @@ -0,0 +1,416 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {msg} from '@lingui/core/macro'; + +export const MEMBER_KICK_SUMMARY = msg({ + message: '{actor} kicked {target}.', + comment: + 'Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip.', +}); +export const MEMBER_PRUNE_SUMMARY = msg({ + message: '{actor} pruned inactive members.', + comment: + 'Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System.', +}); +export const MEMBER_BAN_ADD_SUMMARY = msg({ + message: '{actor} banned {target}.', + comment: + 'Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip.', +}); +export const MEMBER_BAN_ADD_TEMPORARY_SUMMARY = msg({ + message: '{actor} banned {target} for {duration}.', + comment: + 'Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours".', +}); +export const MEMBER_BAN_DELETED_MESSAGES_ROW = msg({ + message: "Deleted {duration} of the member's recent message history.", + comment: + 'Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const MEMBER_BAN_REMOVE_SUMMARY = msg({ + message: '{actor} unbanned {target}.', + comment: + 'Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip.', +}); +export const MEMBER_BAN_ORIGINAL_MODERATOR_AND_DATE_ROW = msg({ + message: 'Originally banned by {user} on {date}.', + comment: + 'Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time.', +}); +export const MEMBER_BAN_ORIGINAL_DATE_ROW = msg({ + message: 'Originally banned on {date}.', + comment: + 'Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time.', +}); +export const MEMBER_BAN_ORIGINAL_MODERATOR_ROW = msg({ + message: 'Originally banned by {user}.', + comment: + 'Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip.', +}); +export const MEMBER_BAN_EXPIRY_PENDING_ROW = msg({ + message: 'The ban was scheduled to expire on {date}.', + comment: + 'Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time.', +}); +export const MEMBER_BAN_EXPIRY_PASSED_ROW = msg({ + message: 'The ban had already expired on {date}.', + comment: + 'Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time.', +}); +export const MEMBER_NICKNAME_SET_SUMMARY = msg({ + message: '{actor} set the nickname of {target} to {nick}.', + comment: + 'Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or .', +}); +export const MEMBER_NICKNAME_CHANGED_SUMMARY = msg({ + message: '{actor} changed the nickname of {target} from {oldNick} to {newNick}.', + comment: + 'Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or .', +}); +export const MEMBER_NICKNAME_REMOVED_SUMMARY = msg({ + message: '{actor} removed the nickname {nick} from {target}.', + comment: + 'Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip.', +}); +export const MEMBER_OWN_NICKNAME_SET_SUMMARY = msg({ + message: '{actor} set their nickname to {nick}.', + comment: + 'Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or .', +}); +export const MEMBER_OWN_NICKNAME_CHANGED_SUMMARY = msg({ + message: '{actor} changed their nickname from {oldNick} to {newNick}.', + comment: + 'Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or .', +}); +export const MEMBER_OWN_NICKNAME_REMOVED_SUMMARY = msg({ + message: '{actor} removed their nickname {nick}.', + comment: + 'Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or .', +}); +export const MEMBER_TIMEOUT_SET_SUMMARY = msg({ + message: '{actor} timed out {target} until {date}.', + comment: + 'Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time.', +}); +export const MEMBER_TIMEOUT_CHANGED_SUMMARY = msg({ + message: "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}.", + comment: + 'Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time.', +}); +export const MEMBER_TIMEOUT_REMOVED_SUMMARY = msg({ + message: '{actor} removed the timeout for {target}.', + comment: + 'Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip.', +}); +export const MEMBER_SERVER_MUTE_APPLIED_SUMMARY = msg({ + message: "{actor} turned off {target}'s microphone in this community.", + comment: + 'Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip.', +}); +export const MEMBER_SERVER_MUTE_REMOVED_SUMMARY = msg({ + message: "{actor} turned {target}'s microphone back on in this community.", + comment: + 'Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip.', +}); +export const MEMBER_SERVER_DEAFEN_APPLIED_SUMMARY = msg({ + message: '{actor} stopped {target} from hearing others in this community.', + comment: + 'Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip.', +}); +export const MEMBER_SERVER_DEAFEN_REMOVED_SUMMARY = msg({ + message: '{actor} let {target} hear others in this community again.', + comment: + 'Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip.', +}); +export const MEMBER_ROLE_ADDED_SUMMARY = msg({ + message: '{actor} gave {target} the role {role}.', + comment: + 'Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name.', +}); +export const MEMBER_ROLE_REMOVED_SUMMARY = msg({ + message: '{actor} removed the role {role} from {target}.', + comment: + 'Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip.', +}); +export const MEMBER_ROLES_UPDATED_SUMMARY = msg({ + message: '{actor} updated the roles of {target}.', + comment: + 'Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip.', +}); +export const MEMBER_ROLE_ADDED_BY_SYSTEM_SUMMARY = msg({ + message: 'The system gave {target} the role {role}.', + comment: + 'Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name.', +}); +export const MEMBER_ROLE_REMOVED_BY_SYSTEM_SUMMARY = msg({ + message: 'The system removed the role {role} from {target}.', + comment: + 'Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip.', +}); +export const MEMBER_OWN_AVATAR_SET_SUMMARY = msg({ + message: '{actor} set their community profile avatar.', + comment: + 'Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip.', +}); +export const MEMBER_OWN_AVATAR_CHANGED_SUMMARY = msg({ + message: '{actor} changed their community profile avatar.', + comment: + 'Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip.', +}); +export const MEMBER_OWN_AVATAR_REMOVED_SUMMARY = msg({ + message: '{actor} removed their community profile avatar.', + comment: + 'Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip.', +}); +export const MEMBER_OWN_BANNER_SET_SUMMARY = msg({ + message: '{actor} set their community profile banner.', + comment: + 'Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip.', +}); +export const MEMBER_OWN_BANNER_CHANGED_SUMMARY = msg({ + message: '{actor} changed their community profile banner.', + comment: + 'Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip.', +}); +export const MEMBER_OWN_BANNER_REMOVED_SUMMARY = msg({ + message: '{actor} removed their community profile banner.', + comment: + 'Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip.', +}); +export const MEMBER_OWN_BIO_SET_SUMMARY = msg({ + message: '{actor} set their community profile bio to {text}.', + comment: + 'Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long.', +}); +export const MEMBER_OWN_BIO_CHANGED_SUMMARY = msg({ + message: '{actor} changed their community profile bio to {text}.', + comment: + 'Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long.', +}); +export const MEMBER_OWN_BIO_REMOVED_SUMMARY = msg({ + message: '{actor} removed their community profile bio.', + comment: + 'Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip.', +}); +export const MEMBER_OWN_PRONOUNS_SET_SUMMARY = msg({ + message: '{actor} set their community profile pronouns to {text}.', + comment: + 'Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text.', +}); +export const MEMBER_OWN_PRONOUNS_REMOVED_SUMMARY = msg({ + message: '{actor} removed their community profile pronouns.', + comment: + 'Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip.', +}); +export const MEMBER_OWN_ACCENT_COLOR_SET_SUMMARY = msg({ + message: '{actor} set their community profile accent color to {color}.', + comment: + 'Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color.', +}); +export const MEMBER_OWN_ACCENT_COLOR_REMOVED_SUMMARY = msg({ + message: '{actor} removed their community profile accent color.', + comment: + 'Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip.', +}); +export const MEMBER_OWN_PROFILE_UPDATED_SUMMARY = msg({ + message: '{actor} updated their community profile.', + comment: + 'Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip.', +}); +export const MEMBER_UPDATED_SUMMARY = msg({ + message: '{actor} updated {target}.', + comment: + 'Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip.', +}); +export const MEMBER_NICKNAME_SET_ROW = msg({ + message: 'Set the nickname to {nick}.', + comment: + 'Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or .', +}); +export const MEMBER_NICKNAME_CHANGED_ROW = msg({ + message: 'Changed the nickname from {oldNick} to {newNick}.', + comment: + 'Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or .', +}); +export const MEMBER_NICKNAME_REMOVED_ROW = msg({ + message: 'Removed the nickname {nick}.', + comment: + 'Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or .', +}); +export const MEMBER_ROLE_ADDED_ROW = msg({ + message: 'Added the role {role}.', + comment: + 'Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name.', +}); +export const MEMBER_ROLE_REMOVED_ROW = msg({ + message: 'Removed the role {role}.', + comment: + 'Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name.', +}); +export const MEMBER_TIMEOUT_SET_ROW = msg({ + message: 'Blocked the member from sending messages, reacting and joining voice until {date}.', + comment: + 'Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time.', +}); +export const MEMBER_TIMEOUT_CHANGED_ROW = msg({ + message: 'Changed the block on sending messages, reacting and joining voice to end at {date}.', + comment: + 'Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time.', +}); +export const MEMBER_TIMEOUT_REMOVED_ROW = msg({ + message: 'Removed the timeout.', + comment: + 'Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const MEMBER_SERVER_MUTE_APPLIED_ROW = msg({ + message: "Turned off the member's microphone in this community.", + comment: + 'Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const MEMBER_SERVER_MUTE_REMOVED_ROW = msg({ + message: "Turned the member's microphone back on in this community.", + comment: + 'Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const MEMBER_SERVER_DEAFEN_APPLIED_ROW = msg({ + message: 'Stopped the member from hearing others in this community.', + comment: + 'Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const MEMBER_SERVER_DEAFEN_REMOVED_ROW = msg({ + message: 'Let the member hear others in this community again.', + comment: + 'Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const MEMBER_AVATAR_SET_ROW = msg({ + message: "Added the member's community profile avatar.", + comment: + 'Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here.', +}); +export const MEMBER_AVATAR_CHANGED_ROW = msg({ + message: "Changed the member's community profile avatar.", + comment: + 'Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const MEMBER_AVATAR_REMOVED_ROW = msg({ + message: "Removed the member's community profile avatar.", + comment: + 'Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const MEMBER_BANNER_SET_ROW = msg({ + message: "Added the member's community profile banner.", + comment: + 'Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here.', +}); +export const MEMBER_BANNER_CHANGED_ROW = msg({ + message: "Changed the member's community profile banner.", + context: 'audit-log-member-profile', + comment: + 'Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const MEMBER_BANNER_REMOVED_ROW = msg({ + message: "Removed the member's community profile banner.", + context: 'audit-log-member-profile', + comment: + 'Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const MEMBER_BIO_SET_ROW = msg({ + message: "Set the member's community profile bio to {text}.", + comment: + 'Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long.', +}); +export const MEMBER_BIO_CHANGED_ROW = msg({ + message: "Changed the member's community profile bio to {text}.", + comment: + 'Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long.', +}); +export const MEMBER_BIO_REMOVED_ROW = msg({ + message: "Removed the member's community profile bio.", + comment: + 'Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const MEMBER_PRONOUNS_SET_ROW = msg({ + message: "Set the member's community profile pronouns to {text}.", + comment: + 'Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text.', +}); +export const MEMBER_PRONOUNS_REMOVED_ROW = msg({ + message: "Removed the member's community profile pronouns.", + comment: + 'Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const MEMBER_ACCENT_COLOR_SET_ROW = msg({ + message: "Set the member's community profile accent color to {color}.", + comment: + 'Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color.', +}); +export const MEMBER_ACCENT_COLOR_REMOVED_ROW = msg({ + message: "Removed the member's community profile accent color.", + comment: + 'Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person.', +}); +export const MEMBER_NO_LONGER_TEMPORARY_ROW = msg({ + message: 'The member is no longer temporary.', + comment: + 'Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role.', +}); +export const MEMBER_MOVE_SUMMARY = msg({ + message: '{actor} moved {target} from {oldChannel} to {newChannel}.', + comment: + 'Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name.', +}); +export const MEMBER_MOVE_TO_SUMMARY = msg({ + message: '{actor} moved {target} to {channel}.', + comment: + 'Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name.', +}); +export const MEMBER_MOVE_UNKNOWN_CHANNEL_SUMMARY = msg({ + message: '{actor} moved {target} to a different voice channel.', + comment: + 'Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip.', +}); +export const MEMBER_OWN_MOVE_SUMMARY = msg({ + message: '{actor} moved from {oldChannel} to {newChannel}.', + comment: + 'Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name.', +}); +export const MEMBER_OWN_MOVE_TO_SUMMARY = msg({ + message: '{actor} moved to {channel}.', + comment: + 'Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name.', +}); +export const MEMBER_OWN_MOVE_UNKNOWN_CHANNEL_SUMMARY = msg({ + message: '{actor} moved to a different voice channel.', + comment: + 'Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip.', +}); +export const MEMBER_DISCONNECT_SUMMARY = msg({ + message: '{actor} disconnected {target} from {channel}.', + comment: + 'Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name.', +}); +export const MEMBER_DISCONNECT_UNKNOWN_CHANNEL_SUMMARY = msg({ + message: '{actor} disconnected {target} from voice.', + comment: + 'Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip.', +}); +export const MEMBER_OWN_DISCONNECT_SUMMARY = msg({ + message: '{actor} disconnected from {channel}.', + comment: + 'Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name.', +}); +export const MEMBER_OWN_DISCONNECT_UNKNOWN_CHANNEL_SUMMARY = msg({ + message: '{actor} disconnected from voice.', + comment: + 'Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip.', +}); +export const BOT_ADD_SUMMARY = msg({ + message: '{actor} added the bot {target}.', + comment: + 'Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip.', +}); +export const BOT_ADD_TEMPORARY_SUMMARY = msg({ + message: '{actor} added the bot {target} as a temporary member.', + comment: + 'Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip.', +}); diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberPresentation.test.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberPresentation.test.ts new file mode 100644 index 000000000..f59953772 --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberPresentation.test.ts @@ -0,0 +1,1249 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import { + presentMemberBanAdd, + presentMemberBanRemove, + presentMemberDisconnect, + presentMemberMove, + presentMemberRoleUpdate, + presentMemberUpdate, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogMemberPresentation'; +import {presentAuditLogEntry} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogPresentation'; +import { + fakeContext, + makeEntry, + resultToText, + TEST_ACTOR_ID, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogTestUtils'; +import {AuditLogActionType} from '@fluxer/constants/src/AuditLogActionType'; +import {describe, expect, it, vi} from 'vitest'; + +vi.mock('@lingui/core/macro', () => { + const descriptor = (value: unknown): unknown => (typeof value === 'string' ? {message: value} : value); + return {msg: descriptor, t: descriptor, plural: () => '', select: () => '', selectOrdinal: () => ''}; +}); + +vi.mock('@app/features/app/config/Config', () => ({ + default: { + PUBLIC_BUILD_VERSION: 'test', + PUBLIC_RELEASE_CHANNEL: 'canary', + PUBLIC_BOOTSTRAP_API_ENDPOINT: 'https://example.invalid', + PUBLIC_BOOTSTRAP_API_PUBLIC_ENDPOINT: 'https://example.invalid', + }, +})); + +type EntryFixture = Parameters[0]; +type ChangeFixture = NonNullable[number]; +type PresentedText = ReturnType & {expandable: boolean}; + +const TARGET_ID = '1400000000000000100'; +const MODERATOR_ID = '1400000000000000101'; +const BOT_ID = '1400000000000000102'; +const ROLE_A = '1400000000000000200'; +const ROLE_B = '1400000000000000201'; +const ROLE_C = '1400000000000000202'; +const CHANNEL_A = '1400000000000000300'; +const CHANNEL_B = '1400000000000000301'; +const EARLIER_PAST = '2026-08-30T12:00:00.000Z'; +const PAST = '2026-08-31T12:00:00.000Z'; +const ENTRY_TIME = '2026-09-01T12:00:00.000Z'; +const BAN_TIME = '2026-09-01T12:00:00.007Z'; +const FUTURE = '2026-09-02T12:00:00.000Z'; +const LATER_FUTURE = '2026-09-03T18:30:00.000Z'; +const USER_NAMES: Readonly> = { + [TEST_ACTOR_ID]: 'Hampus', + [TARGET_ID]: 'ender', + [MODERATOR_ID]: 'Mira', + [BOT_ID]: 'MyBot', +}; + +function present(fixture: EntryFixture): PresentedText { + const presentation = presentAuditLogEntry(makeEntry(fixture), fakeContext()); + return {...resultToText(presentation, USER_NAMES), expandable: presentation.expandable}; +} + +function change(key: string, oldValue: unknown, newValue: unknown): ChangeFixture { + return {key, old_value: oldValue, new_value: newValue}; +} + +function memberUpdate(changes: Array, targetId: string = TARGET_ID): EntryFixture { + return {action_type: AuditLogActionType.MEMBER_UPDATE, target_id: targetId, changes}; +} + +function banAdd(changes: Array, extra: Partial = {}): EntryFixture { + return {action_type: AuditLogActionType.MEMBER_BAN_ADD, target_id: TARGET_ID, changes, ...extra}; +} + +function banSnapshot(fields: { + bannedAt?: string; + expiresAt?: string | null; + reason?: string | null; +}): Array { + return [ + {key: 'user_id', new_value: TARGET_ID}, + {key: 'moderator_id', new_value: TEST_ACTOR_ID}, + {key: 'banned_at', new_value: fields.bannedAt ?? BAN_TIME}, + {key: 'expires_at', new_value: fields.expiresAt ?? null}, + {key: 'reason', new_value: fields.reason ?? null}, + ]; +} + +function banRemove(changes: Array, extra: Partial = {}): EntryFixture { + return {action_type: AuditLogActionType.MEMBER_BAN_REMOVE, target_id: TARGET_ID, changes, ...extra}; +} + +function roleUpdate(changes: Array, extra: Partial = {}): EntryFixture { + return {action_type: AuditLogActionType.MEMBER_ROLE_UPDATE, target_id: TARGET_ID, changes, ...extra}; +} + +describe('presentMemberKick', () => { + it('summarizes a kick with no rows', () => { + expect(present({action_type: AuditLogActionType.MEMBER_KICK, target_id: TARGET_ID})).toEqual({ + summary: 'Hampus kicked ender.', + rows: [], + blocks: [], + expandable: false, + }); + }); + + it('shows the decoded header reason as the only detail', () => { + expect( + present({action_type: AuditLogActionType.MEMBER_KICK, target_id: TARGET_ID, reason: 'Posting%20scam%20links'}), + ).toEqual({ + summary: 'Hampus kicked ender.', + rows: [], + blocks: [{kind: 'reason', text: 'Posting scam links'}], + expandable: true, + }); + }); +}); + +describe('presentMemberPrune', () => { + it('summarizes a prune and ignores stray prune options and changes', () => { + expect( + present({ + action_type: AuditLogActionType.MEMBER_PRUNE, + options: {members_removed: 3, delete_member_days: '7'}, + changes: [{key: 'prune_delete_days', new_value: 7}], + }), + ).toEqual({summary: 'Hampus pruned inactive members.', rows: [], blocks: [], expandable: false}); + }); +}); + +describe('presentMemberBanAdd', () => { + it('shows the screenshot 1 legacy row as a bare summary', () => { + expect(present(banAdd(banSnapshot({}), {options: {delete_member_days: '0'}}))).toEqual({ + summary: 'Hampus banned ender.', + rows: [], + blocks: [], + expandable: false, + }); + }); + + it('shows a body reason that the API resolved into the entry reason once', () => { + expect( + present(banAdd(banSnapshot({reason: 'Spamming invites'}), {reason: 'Spamming invites', options: {}})), + ).toEqual({ + summary: 'Hampus banned ender.', + rows: [], + blocks: [{kind: 'reason', text: 'Spamming invites'}], + expandable: true, + }); + }); + + it('shows a body-only reason as a ban reason block when the entry has no reason', () => { + expect(present(banAdd(banSnapshot({reason: 'Spamming invites'})))).toEqual({ + summary: 'Hampus banned ender.', + rows: [], + blocks: [{kind: 'ban_reason', text: 'Spamming invites'}], + expandable: true, + }); + }); + + it('adds a ban reason block after the Reason block when the two reasons differ', () => { + expect(present(banAdd(banSnapshot({reason: 'Spamming invites'}), {reason: 'Raid%20cleanup'}))).toEqual({ + summary: 'Hampus banned ender.', + rows: [], + blocks: [ + {kind: 'reason', text: 'Raid cleanup'}, + {kind: 'ban_reason', text: 'Spamming invites'}, + ], + expandable: true, + }); + }); + + it('adds no ban reason block when both reasons decode to the same text', () => { + expect(present(banAdd(banSnapshot({reason: ' Raid%20cleanup '}), {reason: 'Raid cleanup'}))).toEqual({ + summary: 'Hampus banned ender.', + rows: [], + blocks: [{kind: 'reason', text: 'Raid cleanup'}], + expandable: true, + }); + }); + + it('adds no ban reason block for a blank ban reason', () => { + expect(present(banAdd(banSnapshot({reason: ' '}))).blocks).toEqual([]); + }); + + it.each([ + {name: 'a 3-day ban', expiresAt: '2026-09-04T12:00:00.000Z', summary: 'Hampus banned ender for 3 days.'}, + {name: 'a 12-hour ban', expiresAt: '2026-09-02T00:00:00.000Z', summary: 'Hampus banned ender for 12 hours.'}, + {name: 'a 90-minute ban', expiresAt: '2026-09-01T13:30:00.000Z', summary: 'Hampus banned ender for 90 minutes.'}, + ])('gives the length of $name measured from banned_at', ({expiresAt, summary}) => { + expect(present(banAdd(banSnapshot({expiresAt})))).toEqual({summary, rows: [], blocks: [], expandable: false}); + }); + + it('measures a temporary ban from the entry time when banned_at is missing', () => { + expect(present(banAdd([change('expires_at', null, FUTURE)])).summary).toBe('Hampus banned ender for 1 day.'); + }); + + it.each([ + {name: 'an unparseable expiry', expiresAt: 'soon'}, + {name: 'an expiry equal to banned_at', expiresAt: BAN_TIME}, + {name: 'an expiry before banned_at', expiresAt: PAST}, + ])('treats $name as a permanent ban', ({expiresAt}) => { + expect(present(banAdd(banSnapshot({expiresAt}))).summary).toBe('Hampus banned ender.'); + }); + + it.each([ + { + name: 'numeric delete_message_seconds', + options: {delete_message_seconds: 3600}, + row: "- Deleted 1 hour of the member's recent message history.", + }, + { + name: 'dispatch string delete_message_seconds', + options: {delete_message_seconds: '43200'}, + row: "- Deleted 12 hours of the member's recent message history.", + }, + { + name: 'delete_message_seconds over legacy days', + options: {delete_message_seconds: 21600, delete_member_days: '7'}, + row: "- Deleted 6 hours of the member's recent message history.", + }, + { + name: 'legacy delete_member_days "7"', + options: {delete_member_days: '7'}, + row: "- Deleted 7 days of the member's recent message history.", + }, + { + name: 'legacy days when delete_message_seconds is 0', + options: {delete_message_seconds: 0, delete_member_days: '2'}, + row: "- Deleted 2 days of the member's recent message history.", + }, + ])('lists deleted messages from $name', ({options, row}) => { + expect(present(banAdd(banSnapshot({}), {options}))).toEqual({ + summary: 'Hampus banned ender.', + rows: [row], + blocks: [], + expandable: true, + }); + }); + + it.each([ + {delete_member_days: '0'}, + {delete_member_days: 'x'}, + {delete_member_days: '1.5'}, + {delete_member_days: '-2'}, + {delete_member_days: ''}, + {delete_message_seconds: 'lots'}, + {}, + ])('adds no deletion row for options %j', (options) => { + expect(present(banAdd(banSnapshot({}), {options})).rows).toEqual([]); + }); + + it('combines a temporary ban, both reasons and a deletion', () => { + expect( + present( + banAdd(banSnapshot({expiresAt: '2026-09-08T12:00:00.000Z', reason: 'Spamming invites'}), { + reason: 'Raid cleanup', + options: {delete_message_seconds: 86400}, + }), + ), + ).toEqual({ + summary: 'Hampus banned ender for 7 days.', + rows: ["- Deleted 1 day of the member's recent message history."], + blocks: [ + {kind: 'reason', text: 'Raid cleanup'}, + {kind: 'ban_reason', text: 'Spamming invites'}, + ], + expandable: true, + }); + }); + + it('passes the ban length and deletion window as durations', () => { + const result = presentMemberBanAdd( + makeEntry( + banAdd(banSnapshot({expiresAt: '2026-09-04T12:00:00.000Z'}), {options: {delete_message_seconds: 3600}}), + ), + ); + expect(result.summary.values.duration).toEqual({kind: 'duration', seconds: 259200}); + expect(result.rows[0]?.sentence.values.duration).toEqual({kind: 'duration', seconds: 3600}); + }); +}); + +describe('presentMemberBanRemove', () => { + it.each([ + { + name: 'a ban by another moderator with its date', + changes: [ + {key: 'moderator_id', old_value: MODERATOR_ID}, + {key: 'banned_at', old_value: '2026-08-20T08:30:00.000Z'}, + ], + rows: ['~ Originally banned by Mira on 2026-08-20T08:30:00.000Z.'], + }, + { + name: 'a ban by the same moderator with its date', + changes: [ + {key: 'moderator_id', old_value: TEST_ACTOR_ID}, + {key: 'banned_at', old_value: '2026-08-20T08:30:00.000Z'}, + ], + rows: ['~ Originally banned on 2026-08-20T08:30:00.000Z.'], + }, + { + name: 'a ban with its date and no moderator', + changes: [{key: 'banned_at', old_value: '2026-08-20T08:30:00.000Z'}], + rows: ['~ Originally banned on 2026-08-20T08:30:00.000Z.'], + }, + { + name: 'a ban by another moderator without a date', + changes: [{key: 'moderator_id', old_value: MODERATOR_ID}], + rows: ['~ Originally banned by Mira.'], + }, + ])('describes the origin of $name', ({changes, rows}) => { + expect(present(banRemove(changes))).toEqual({ + summary: 'Hampus unbanned ender.', + rows, + blocks: [], + expandable: true, + }); + }); + + it.each([ + {name: 'the same moderator without a date', changes: [{key: 'moderator_id', old_value: TEST_ACTOR_ID}]}, + {name: 'nothing recorded', changes: []}, + { + name: 'junk values', + changes: [ + {key: 'moderator_id', old_value: 1400000000000000}, + {key: 'banned_at', old_value: 'yesterday'}, + {key: 'expires_at', old_value: 42}, + {key: 'reason', old_value: 7}, + ], + }, + ])('shows only the summary for $name', ({changes}) => { + expect(present(banRemove(changes))).toEqual({ + summary: 'Hampus unbanned ender.', + rows: [], + blocks: [], + expandable: false, + }); + }); + + it.each([ + {name: 'a future expiry', expiresAt: LATER_FUTURE, row: `~ The ban was scheduled to expire on ${LATER_FUTURE}.`}, + {name: 'a past expiry', expiresAt: PAST, row: `~ The ban had already expired on ${PAST}.`}, + { + name: 'an expiry at the entry time', + expiresAt: ENTRY_TIME, + row: `~ The ban had already expired on ${ENTRY_TIME}.`, + }, + ])('describes $name', ({expiresAt, row}) => { + expect(present(banRemove([{key: 'expires_at', old_value: expiresAt}])).rows).toEqual([row]); + }); + + it('shows the full removed snapshot with the unban reason and the original ban reason', () => { + expect( + present( + banRemove( + [ + {key: 'user_id', old_value: TARGET_ID}, + {key: 'moderator_id', old_value: MODERATOR_ID}, + {key: 'banned_at', old_value: EARLIER_PAST}, + {key: 'expires_at', old_value: FUTURE}, + {key: 'reason', old_value: 'Spamming%20invites'}, + ], + {reason: 'Appeal accepted'}, + ), + ), + ).toEqual({ + summary: 'Hampus unbanned ender.', + rows: [`~ Originally banned by Mira on ${EARLIER_PAST}.`, `~ The ban was scheduled to expire on ${FUTURE}.`], + blocks: [ + {kind: 'reason', text: 'Appeal accepted'}, + {kind: 'ban_reason', text: 'Spamming invites'}, + ], + expandable: true, + }); + }); + + it('shows a ban reason block even without other rows', () => { + expect(present(banRemove([{key: 'reason', old_value: 'Spam'}]))).toEqual({ + summary: 'Hampus unbanned ender.', + rows: [], + blocks: [{kind: 'ban_reason', text: 'Spam'}], + expandable: true, + }); + }); + + it('passes the original moderator as a user and the dates as dates', () => { + const result = presentMemberBanRemove( + makeEntry( + banRemove([ + {key: 'moderator_id', old_value: MODERATOR_ID}, + {key: 'banned_at', old_value: EARLIER_PAST}, + ]), + ), + ); + expect(result.rows[0]?.sentence.values).toEqual({ + user: {kind: 'user', id: MODERATOR_ID}, + date: {kind: 'date', timestamp: Date.parse(EARLIER_PAST)}, + }); + }); +}); + +describe('presentMemberUpdate', () => { + it.each([ + { + name: 'a nickname set for another member', + targetId: TARGET_ID, + changes: [change('nick', null, 'Ender')], + summary: 'Hampus set the nickname of ender to Ender.', + }, + { + name: 'a blank nickname replaced for another member', + targetId: TARGET_ID, + changes: [change('nick', ' ', 'Ender')], + summary: 'Hampus set the nickname of ender to Ender.', + }, + { + name: 'a nickname changed for another member', + targetId: TARGET_ID, + changes: [change('nick', 'Ender', 'Endy')], + summary: 'Hampus changed the nickname of ender from Ender to Endy.', + }, + { + name: 'a nickname removed from another member', + targetId: TARGET_ID, + changes: [change('nick', 'Endy', null)], + summary: 'Hampus removed the nickname Endy from ender.', + }, + { + name: 'an own nickname set', + targetId: TEST_ACTOR_ID, + changes: [change('nick', null, 'Hamp')], + summary: 'Hampus set their nickname to Hamp.', + }, + { + name: 'an own nickname changed', + targetId: TEST_ACTOR_ID, + changes: [change('nick', 'Hamp', 'H')], + summary: 'Hampus changed their nickname from Hamp to H.', + }, + { + name: 'an own nickname removed', + targetId: TEST_ACTOR_ID, + changes: [change('nick', 'H', null)], + summary: 'Hampus removed their nickname H.', + }, + { + name: 'a timeout set', + targetId: TARGET_ID, + changes: [change('communication_disabled_until', null, FUTURE)], + summary: `Hampus timed out ender until ${FUTURE}.`, + }, + { + name: 'a timeout set over an expired one', + targetId: TARGET_ID, + changes: [change('communication_disabled_until', PAST, FUTURE)], + summary: `Hampus timed out ender until ${FUTURE}.`, + }, + { + name: 'a timeout set on the actor', + targetId: TEST_ACTOR_ID, + changes: [change('communication_disabled_until', null, FUTURE)], + summary: `Hampus timed out Hampus until ${FUTURE}.`, + }, + { + name: 'a running timeout changed', + targetId: TARGET_ID, + changes: [change('communication_disabled_until', FUTURE, LATER_FUTURE)], + summary: `Hampus changed ender's block on sending messages, reacting and joining voice to end at ${LATER_FUTURE}.`, + }, + { + name: 'a running timeout removed', + targetId: TARGET_ID, + changes: [change('communication_disabled_until', FUTURE, null)], + summary: 'Hampus removed the timeout for ender.', + }, + { + name: 'a running timeout ended with a past time', + targetId: TARGET_ID, + changes: [change('communication_disabled_until', FUTURE, PAST)], + summary: 'Hampus removed the timeout for ender.', + }, + { + name: 'a community mute applied', + targetId: TARGET_ID, + changes: [change('mute', false, true)], + summary: "Hampus turned off ender's microphone in this community.", + }, + { + name: 'a community mute removed', + targetId: TARGET_ID, + changes: [change('mute', true, false)], + summary: "Hampus turned ender's microphone back on in this community.", + }, + { + name: 'a community mute applied to the actor', + targetId: TEST_ACTOR_ID, + changes: [change('mute', false, true)], + summary: "Hampus turned off Hampus's microphone in this community.", + }, + { + name: 'a community deafen applied', + targetId: TARGET_ID, + changes: [change('deaf', false, true)], + summary: 'Hampus stopped ender from hearing others in this community.', + }, + { + name: 'a community deafen removed', + targetId: TARGET_ID, + changes: [change('deaf', true, false)], + summary: 'Hampus let ender hear others in this community again.', + }, + { + name: 'a community deafen removed from the actor', + targetId: TEST_ACTOR_ID, + changes: [change('deaf', true, false)], + summary: 'Hampus let Hampus hear others in this community again.', + }, + { + name: 'one role added', + targetId: TARGET_ID, + changes: [change('roles', [ROLE_A], [ROLE_A, ROLE_B])], + summary: `Hampus gave ender the role @${ROLE_B}.`, + }, + { + name: 'one role removed', + targetId: TARGET_ID, + changes: [change('roles', [ROLE_A, ROLE_B], [ROLE_B])], + summary: `Hampus removed the role @${ROLE_A} from ender.`, + }, + { + name: 'one role added to the actor', + targetId: TEST_ACTOR_ID, + changes: [change('roles', [], [ROLE_A])], + summary: `Hampus gave Hampus the role @${ROLE_A}.`, + }, + { + name: 'an own community avatar set', + targetId: TEST_ACTOR_ID, + changes: [change('avatar_hash', null, 'a1')], + summary: 'Hampus set their community profile avatar.', + }, + { + name: 'an own community avatar changed', + targetId: TEST_ACTOR_ID, + changes: [change('avatar_hash', 'a1', 'a2')], + summary: 'Hampus changed their community profile avatar.', + }, + { + name: 'an own community avatar removed', + targetId: TEST_ACTOR_ID, + changes: [change('avatar_hash', 'a2', null)], + summary: 'Hampus removed their community profile avatar.', + }, + { + name: 'an own community banner set', + targetId: TEST_ACTOR_ID, + changes: [change('banner_hash', null, 'b1')], + summary: 'Hampus set their community profile banner.', + }, + { + name: 'an own community banner changed', + targetId: TEST_ACTOR_ID, + changes: [change('banner_hash', 'b1', 'b2')], + summary: 'Hampus changed their community profile banner.', + }, + { + name: 'an own community banner removed', + targetId: TEST_ACTOR_ID, + changes: [change('banner_hash', 'b2', null)], + summary: 'Hampus removed their community profile banner.', + }, + { + name: 'an own community bio set', + targetId: TEST_ACTOR_ID, + changes: [change('bio', null, 'Hello there')], + summary: 'Hampus set their community profile bio to Hello there.', + }, + { + name: 'an own community bio changed', + targetId: TEST_ACTOR_ID, + changes: [change('bio', 'Hello there', 'Back soon')], + summary: 'Hampus changed their community profile bio to Back soon.', + }, + { + name: 'an own community bio removed', + targetId: TEST_ACTOR_ID, + changes: [change('bio', 'Back soon', null)], + summary: 'Hampus removed their community profile bio.', + }, + { + name: 'own community pronouns set', + targetId: TEST_ACTOR_ID, + changes: [change('pronouns', null, 'he/him')], + summary: 'Hampus set their community profile pronouns to he/him.', + }, + { + name: 'own community pronouns changed', + targetId: TEST_ACTOR_ID, + changes: [change('pronouns', 'he/him', 'they/them')], + summary: 'Hampus set their community profile pronouns to they/them.', + }, + { + name: 'own community pronouns removed', + targetId: TEST_ACTOR_ID, + changes: [change('pronouns', 'they/them', null)], + summary: 'Hampus removed their community profile pronouns.', + }, + { + name: 'an own community accent color set', + targetId: TEST_ACTOR_ID, + changes: [change('accent_color', null, 16711680)], + summary: 'Hampus set their community profile accent color to #FF0000.', + }, + { + name: 'an own community accent color changed', + targetId: TEST_ACTOR_ID, + changes: [change('accent_color', 16711680, 255)], + summary: 'Hampus set their community profile accent color to #0000FF.', + }, + { + name: 'an own community accent color removed', + targetId: TEST_ACTOR_ID, + changes: [change('accent_color', 255, null)], + summary: 'Hampus removed their community profile accent color.', + }, + ])('gives a specific summary for $name', ({targetId, changes, summary}) => { + expect(present(memberUpdate(changes, targetId))).toEqual({summary, rows: [], blocks: [], expandable: false}); + }); + + it.each([ + { + name: 'a community avatar set', + changes: [change('avatar_hash', null, 'a1')], + row: "+ Added the member's community profile avatar.", + }, + { + name: 'a community avatar changed', + changes: [change('avatar_hash', 'a1', 'a2')], + row: "~ Changed the member's community profile avatar.", + }, + { + name: 'a community avatar removed', + changes: [change('avatar_hash', 'a2', null)], + row: "- Removed the member's community profile avatar.", + }, + { + name: 'a community banner set', + changes: [change('banner_hash', null, 'b1')], + row: "+ Added the member's community profile banner.", + }, + { + name: 'a community banner changed', + changes: [change('banner_hash', 'b1', 'b2')], + row: "~ Changed the member's community profile banner.", + }, + { + name: 'a community banner removed', + changes: [change('banner_hash', 'b2', null)], + row: "- Removed the member's community profile banner.", + }, + { + name: 'a community bio set', + changes: [change('bio', null, 'Hello there')], + row: "+ Set the member's community profile bio to Hello there.", + }, + { + name: 'a community bio changed', + changes: [change('bio', 'Hello there', 'Back soon')], + row: "~ Changed the member's community profile bio to Back soon.", + }, + { + name: 'a community bio removed', + changes: [change('bio', 'Back soon', null)], + row: "- Removed the member's community profile bio.", + }, + { + name: 'community pronouns set', + changes: [change('pronouns', null, 'he/him')], + row: "~ Set the member's community profile pronouns to he/him.", + }, + { + name: 'community pronouns changed', + changes: [change('pronouns', 'he/him', 'they/them')], + row: "~ Set the member's community profile pronouns to they/them.", + }, + { + name: 'community pronouns removed', + changes: [change('pronouns', 'they/them', null)], + row: "- Removed the member's community profile pronouns.", + }, + { + name: 'a community accent color set', + changes: [change('accent_color', null, 16711680)], + row: "~ Set the member's community profile accent color to #FF0000.", + }, + { + name: 'a community accent color changed', + changes: [change('accent_color', 16711680, 255)], + row: "~ Set the member's community profile accent color to #0000FF.", + }, + { + name: 'a community accent color removed', + changes: [change('accent_color', 255, null)], + row: "- Removed the member's community profile accent color.", + }, + ])('uses the generic summary and a row for $name on another member', ({changes, row}) => { + expect(present(memberUpdate(changes))).toEqual({ + summary: 'Hampus updated ender.', + rows: [row], + blocks: [], + expandable: true, + }); + }); + + it.each([ + {name: 'a nickname set', groupChange: change('nick', null, 'Ender'), row: '+ Set the nickname to Ender.'}, + { + name: 'a nickname changed', + groupChange: change('nick', 'Ender', 'Endy'), + row: '~ Changed the nickname from Ender to Endy.', + }, + {name: 'a nickname removed', groupChange: change('nick', 'Endy', null), row: '- Removed the nickname Endy.'}, + {name: 'a role added', groupChange: change('roles', [], [ROLE_A]), row: `+ Added the role @${ROLE_A}.`}, + {name: 'a role removed', groupChange: change('roles', [ROLE_A], []), row: `- Removed the role @${ROLE_A}.`}, + { + name: 'a timeout set', + groupChange: change('communication_disabled_until', null, FUTURE), + row: `+ Blocked the member from sending messages, reacting and joining voice until ${FUTURE}.`, + }, + { + name: 'a timeout changed', + groupChange: change('communication_disabled_until', FUTURE, LATER_FUTURE), + row: `~ Changed the block on sending messages, reacting and joining voice to end at ${LATER_FUTURE}.`, + }, + { + name: 'a timeout removed', + groupChange: change('communication_disabled_until', FUTURE, null), + row: '- Removed the timeout.', + }, + { + name: 'a community mute applied', + groupChange: change('mute', false, true), + row: "+ Turned off the member's microphone in this community.", + }, + { + name: 'a community mute removed', + groupChange: change('mute', true, false), + row: "- Turned the member's microphone back on in this community.", + }, + { + name: 'a community deafen applied', + groupChange: change('deaf', false, true), + row: '+ Stopped the member from hearing others in this community.', + }, + { + name: 'a community deafen removed', + groupChange: change('deaf', true, false), + row: '- Let the member hear others in this community again.', + }, + ])('renders the row for $name under the generic summary', ({groupChange, row}) => { + expect(present(memberUpdate([change('accent_color', null, 255), groupChange]))).toEqual({ + summary: 'Hampus updated ender.', + rows: [row, "~ Set the member's community profile accent color to #0000FF."], + blocks: [], + expandable: true, + }); + }); + + it('orders every group row under the generic summary regardless of the stored key order', () => { + expect( + present( + memberUpdate([ + change('temporary', true, false), + change('accent_color', null, 255), + change('pronouns', null, 'he/him'), + change('bio', null, 'Hello'), + change('banner_hash', 'b1', null), + change('avatar_hash', 'a1', 'a2'), + change('deaf', false, true), + change('mute', true, false), + change('communication_disabled_until', null, FUTURE), + change('roles', [ROLE_A], [ROLE_B, ROLE_C]), + change('nick', null, 'Ender'), + change('user_id', TARGET_ID, TARGET_ID), + ]), + ), + ).toEqual({ + summary: 'Hampus updated ender.', + rows: [ + '+ Set the nickname to Ender.', + `+ Added the role @${ROLE_B}.`, + `+ Added the role @${ROLE_C}.`, + `- Removed the role @${ROLE_A}.`, + `+ Blocked the member from sending messages, reacting and joining voice until ${FUTURE}.`, + "- Turned the member's microphone back on in this community.", + '+ Stopped the member from hearing others in this community.', + "~ Changed the member's community profile avatar.", + "- Removed the member's community profile banner.", + "+ Set the member's community profile bio to Hello.", + "~ Set the member's community profile pronouns to he/him.", + "~ Set the member's community profile accent color to #0000FF.", + '~ The member is no longer temporary.', + ], + blocks: [], + expandable: true, + }); + }); + + it('summarizes an own profile save with several changes as a community profile update', () => { + expect( + present( + memberUpdate( + [ + change('nick', 'Hampus', 'Hamp'), + change('avatar_hash', null, 'a1'), + change('bio', null, 'Building Fluxer'), + change('pronouns', null, 'he/him'), + change('accent_color', null, 16711680), + ], + TEST_ACTOR_ID, + ), + ), + ).toEqual({ + summary: 'Hampus updated their community profile.', + rows: [ + '~ Changed the nickname from Hampus to Hamp.', + "+ Added the member's community profile avatar.", + "+ Set the member's community profile bio to Building Fluxer.", + "~ Set the member's community profile pronouns to he/him.", + "~ Set the member's community profile accent color to #FF0000.", + ], + blocks: [], + expandable: true, + }); + }); + + it('uses the roles summary with a row per role when several roles change', () => { + expect(present(memberUpdate([change('roles', [ROLE_A], [ROLE_B, ROLE_C])]))).toEqual({ + summary: 'Hampus updated the roles of ender.', + rows: [`+ Added the role @${ROLE_B}.`, `+ Added the role @${ROLE_C}.`, `- Removed the role @${ROLE_A}.`], + blocks: [], + expandable: true, + }); + }); + + it('names a deleted role by its id and never by a role_name option', () => { + const entry = makeEntry({...memberUpdate([change('roles', [], [ROLE_A])]), options: {role_name: 'Moderators'}}); + expect(presentMemberUpdate(entry).summary.values.role).toEqual({kind: 'role', id: ROLE_A, recordedName: null}); + expect( + present({...memberUpdate([change('roles', [], [ROLE_A])]), options: {role_name: 'Moderators'}}).summary, + ).toBe(`Hampus gave ender the role @${ROLE_A}.`); + }); + + it('adds the temporary row to a specific summary', () => { + expect(present(memberUpdate([change('roles', [], [ROLE_A]), change('temporary', true, false)]))).toEqual({ + summary: `Hampus gave ender the role @${ROLE_A}.`, + rows: ['~ The member is no longer temporary.'], + blocks: [], + expandable: true, + }); + }); + + it('adds the temporary row after the role rows of the roles summary', () => { + expect(present(memberUpdate([change('roles', [ROLE_A], [ROLE_B]), change('temporary', true, false)]))).toEqual({ + summary: 'Hampus updated the roles of ender.', + rows: [`+ Added the role @${ROLE_B}.`, `- Removed the role @${ROLE_A}.`, '~ The member is no longer temporary.'], + blocks: [], + expandable: true, + }); + }); + + it('shows a lone temporary change under the generic summary and ignores the reverse direction', () => { + expect(present(memberUpdate([change('temporary', true, false)]))).toEqual({ + summary: 'Hampus updated ender.', + rows: ['~ The member is no longer temporary.'], + blocks: [], + expandable: true, + }); + expect(present(memberUpdate([change('temporary', false, true)])).rows).toEqual([]); + }); + + it('treats a timeout that moved from one past time to another as no change', () => { + expect(present(memberUpdate([change('communication_disabled_until', EARLIER_PAST, PAST)]))).toEqual({ + summary: 'Hampus updated ender.', + rows: [], + blocks: [], + expandable: false, + }); + }); + + it.each([ + {name: 'another member', targetId: TARGET_ID, summary: 'Hampus updated ender.'}, + {name: 'the actor', targetId: TEST_ACTOR_ID, summary: 'Hampus updated their community profile.'}, + ])('gives the generic summary for an empty update of $name', ({targetId, summary}) => { + const empty = {summary, rows: [], blocks: [], expandable: false}; + expect(present({action_type: AuditLogActionType.MEMBER_UPDATE, target_id: targetId})).toEqual(empty); + expect(present(memberUpdate([], targetId))).toEqual(empty); + }); + + it('shows the timeout reason from the entry reason and never reads options', () => { + expect( + present({ + ...memberUpdate([change('communication_disabled_until', null, FUTURE)]), + reason: 'Cool off', + options: {timeout_reason: 'Ignored', communication_disabled_until: LATER_FUTURE}, + }), + ).toEqual({ + summary: `Hampus timed out ender until ${FUTURE}.`, + rows: [], + blocks: [{kind: 'reason', text: 'Cool off'}], + expandable: true, + }); + }); + + it('omits groups whose values fail their readers or do not differ', () => { + expect( + present( + memberUpdate([ + change('nick', 'Ender', ' Ender '), + change('nick', null, 'ignored duplicate'), + change('roles', 'R1', [ROLE_A, 5]), + change('communication_disabled_until', 'soon', 'later'), + change('mute', 'yes', true), + change('deaf', true, true), + change('avatar_hash', 5, null), + change('banner_hash', 'b1', 'b1'), + change('bio', null, ' '), + change('pronouns', ['he/him'], null), + change('accent_color', null, 'red'), + change('temporary', 'true', 'false'), + change('user_id', TARGET_ID, MODERATOR_ID), + ]), + ), + ).toEqual({ + summary: 'Hampus updated ender.', + rows: ['~ The member is no longer temporary.'], + blocks: [], + expandable: true, + }); + }); + + it.each([ + {name: 'a fraction', value: 1.5}, + {name: 'a negative number', value: -1}, + {name: 'a value above white', value: 0x1000000}, + {name: 'a string', value: 'red'}, + ])('ignores an accent color that is $name', ({value}) => { + expect(present(memberUpdate([change('accent_color', null, value)])).rows).toEqual([]); + }); + + it('ignores role ids that are not snowflakes', () => { + expect(present(memberUpdate([change('roles', ['everyone'], ['everyone', 'admins'])]))).toEqual({ + summary: 'Hampus updated ender.', + rows: [], + blocks: [], + expandable: false, + }); + }); + + it('passes nicknames as names, profile text as boxed text, colors and dates to the renderer', () => { + const values = (changes: Array) => + presentMemberUpdate(makeEntry(memberUpdate(changes, TEST_ACTOR_ID))).summary.values; + expect(values([change('nick', null, 'Hamp')]).nick).toEqual({kind: 'name', value: 'Hamp'}); + expect(values([change('bio', null, 'Hello')]).text).toEqual({kind: 'text', value: 'Hello'}); + expect(values([change('pronouns', null, 'he/him')]).text).toEqual({kind: 'text', value: 'he/him'}); + expect(values([change('accent_color', null, '255')]).color).toEqual({kind: 'color', value: 255}); + expect(values([change('communication_disabled_until', null, FUTURE)]).date).toEqual({ + kind: 'date', + timestamp: Date.parse(FUTURE), + }); + }); +}); + +describe('presentMemberRoleUpdate', () => { + it('names the added role by its recorded name', () => { + expect( + present(roleUpdate([change('roles', [ROLE_A], [ROLE_A, ROLE_B])], {options: {role_name: 'Moderators'}})), + ).toEqual({summary: 'Hampus gave ender the role @Moderators.', rows: [], blocks: [], expandable: false}); + }); + + it('names the removed role by its recorded name', () => { + expect( + present(roleUpdate([change('roles', [ROLE_A, ROLE_B], [ROLE_A])], {options: {role_name: 'Moderators'}})), + ).toEqual({summary: 'Hampus removed the role @Moderators from ender.', rows: [], blocks: [], expandable: false}); + }); + + it('uses the system sentences when the system gave or removed a role', () => { + expect( + present(roleUpdate([change('roles', [], [ROLE_A])], {user_id: '0', options: {role_name: 'Visionary'}})).summary, + ).toBe('The system gave ender the role @Visionary.'); + expect( + present(roleUpdate([change('roles', [ROLE_A], [])], {user_id: '0', options: {role_name: 'Visionary'}})).summary, + ).toBe('The system removed the role @Visionary from ender.'); + }); + + it('falls back to the role id when no role name was recorded', () => { + const fixture = roleUpdate([change('roles', [], [ROLE_A])], {options: {role_name: ' '}}); + expect(presentMemberRoleUpdate(makeEntry(fixture)).summary.values.role).toEqual({ + kind: 'role', + id: ROLE_A, + recordedName: null, + }); + expect(present(fixture).summary).toBe(`Hampus gave ender the role @${ROLE_A}.`); + }); + + it('gives the roles summary for an empty legacy row and ignores its role_id and action options', () => { + expect(present(roleUpdate([], {options: {role_id: ROLE_A, action: 'add'}}))).toEqual({ + summary: 'Hampus updated the roles of ender.', + rows: [], + blocks: [], + expandable: false, + }); + expect(present({action_type: AuditLogActionType.MEMBER_ROLE_UPDATE, target_id: TARGET_ID}).summary).toBe( + 'Hampus updated the roles of ender.', + ); + }); + + it('adds the temporary row to a single role change', () => { + expect( + present( + roleUpdate([change('roles', [], [ROLE_A]), change('temporary', true, false)], { + options: {role_name: 'Moderators'}, + }), + ), + ).toEqual({ + summary: 'Hampus gave ender the role @Moderators.', + rows: ['~ The member is no longer temporary.'], + blocks: [], + expandable: true, + }); + }); + + it('lists each role by id when several roles differ and ignores role_name', () => { + expect( + present( + roleUpdate([change('roles', [ROLE_A], [ROLE_B, ROLE_C]), change('temporary', true, false)], { + user_id: '0', + options: {role_name: 'Moderators'}, + }), + ), + ).toEqual({ + summary: 'System updated the roles of ender.', + rows: [ + `+ Added the role @${ROLE_B}.`, + `+ Added the role @${ROLE_C}.`, + `- Removed the role @${ROLE_A}.`, + '~ The member is no longer temporary.', + ], + blocks: [], + expandable: true, + }); + }); +}); + +describe('presentMemberMove', () => { + const move = (targetId: string, changes: Array | undefined, options?: Record) => + present({action_type: AuditLogActionType.MEMBER_MOVE, target_id: targetId, changes, options}); + + it.each([ + { + name: 'another member between two channels', + targetId: TARGET_ID, + changes: [change('channel_id', CHANNEL_A, CHANNEL_B)], + options: {channel_id: CHANNEL_B, count: 1}, + summary: `Hampus moved ender from #${CHANNEL_A} to #${CHANNEL_B}.`, + }, + { + name: 'another member from an unknown channel', + targetId: TARGET_ID, + changes: [{key: 'channel_id', new_value: CHANNEL_B}], + options: undefined, + summary: `Hampus moved ender to #${CHANNEL_B}.`, + }, + { + name: 'another member to the options channel', + targetId: TARGET_ID, + changes: undefined, + options: {channel_id: CHANNEL_B, count: '1'}, + summary: `Hampus moved ender to #${CHANNEL_B}.`, + }, + { + name: 'another member with no channels', + targetId: TARGET_ID, + changes: undefined, + options: undefined, + summary: 'Hampus moved ender to a different voice channel.', + }, + { + name: 'another member away from a known channel only', + targetId: TARGET_ID, + changes: [{key: 'channel_id', old_value: CHANNEL_A}], + options: undefined, + summary: 'Hampus moved ender to a different voice channel.', + }, + { + name: 'the actor between two channels', + targetId: TEST_ACTOR_ID, + changes: [change('channel_id', CHANNEL_A, CHANNEL_B)], + options: {channel_id: CHANNEL_B}, + summary: `Hampus moved from #${CHANNEL_A} to #${CHANNEL_B}.`, + }, + { + name: 'the actor from an unknown channel', + targetId: TEST_ACTOR_ID, + changes: [{key: 'channel_id', new_value: CHANNEL_B}], + options: undefined, + summary: `Hampus moved to #${CHANNEL_B}.`, + }, + { + name: 'the actor with no channels', + targetId: TEST_ACTOR_ID, + changes: undefined, + options: undefined, + summary: 'Hampus moved to a different voice channel.', + }, + ])('summarizes a move of $name', ({targetId, changes, options, summary}) => { + expect(move(targetId, changes, options)).toEqual({summary, rows: [], blocks: [], expandable: false}); + }); + + it('passes both channels as channel chips that fall back to a deleted channel', () => { + const result = presentMemberMove( + makeEntry({ + action_type: AuditLogActionType.MEMBER_MOVE, + target_id: TARGET_ID, + changes: [change('channel_id', CHANNEL_A, CHANNEL_B)], + }), + ); + expect(result.summary.values.oldChannel).toEqual({ + kind: 'channel', + id: CHANNEL_A, + recordedName: null, + fallback: 'channel', + }); + expect(result.summary.values.newChannel).toEqual({ + kind: 'channel', + id: CHANNEL_B, + recordedName: null, + fallback: 'channel', + }); + }); +}); + +describe('presentMemberDisconnect', () => { + const disconnect = (targetId: string, changes: Array | undefined, options?: Record) => + present({action_type: AuditLogActionType.MEMBER_DISCONNECT, target_id: targetId, changes, options}); + + it.each([ + { + name: 'another member from a known channel', + targetId: TARGET_ID, + changes: [{key: 'channel_id', old_value: CHANNEL_A}], + options: {channel_id: CHANNEL_A, count: 1}, + summary: `Hampus disconnected ender from #${CHANNEL_A}.`, + }, + { + name: 'another member from the options channel', + targetId: TARGET_ID, + changes: undefined, + options: {channel_id: CHANNEL_A}, + summary: `Hampus disconnected ender from #${CHANNEL_A}.`, + }, + { + name: 'another member from an unknown channel', + targetId: TARGET_ID, + changes: undefined, + options: undefined, + summary: 'Hampus disconnected ender from voice.', + }, + { + name: 'the actor from a known channel', + targetId: TEST_ACTOR_ID, + changes: [{key: 'channel_id', old_value: CHANNEL_A}], + options: undefined, + summary: `Hampus disconnected from #${CHANNEL_A}.`, + }, + { + name: 'the actor from an unknown channel', + targetId: TEST_ACTOR_ID, + changes: [{key: 'channel_id', old_value: 'voice'}], + options: undefined, + summary: 'Hampus disconnected from voice.', + }, + ])('summarizes a disconnect of $name', ({targetId, changes, options, summary}) => { + expect(disconnect(targetId, changes, options)).toEqual({summary, rows: [], blocks: [], expandable: false}); + }); + + it('passes the channel as a channel chip', () => { + const result = presentMemberDisconnect( + makeEntry({ + action_type: AuditLogActionType.MEMBER_DISCONNECT, + target_id: TARGET_ID, + changes: [{key: 'channel_id', old_value: CHANNEL_A}], + }), + ); + expect(result.summary.values.channel).toEqual({ + kind: 'channel', + id: CHANNEL_A, + recordedName: null, + fallback: 'channel', + }); + }); +}); + +describe('presentBotAdd', () => { + it.each([ + {name: 'temporary false', options: {temporary: false}, summary: 'Hampus added the bot MyBot.'}, + {name: 'no options', options: undefined, summary: 'Hampus added the bot MyBot.'}, + {name: 'a junk temporary value', options: {temporary: 'yes'}, summary: 'Hampus added the bot MyBot.'}, + {name: 'temporary true', options: {temporary: true}, summary: 'Hampus added the bot MyBot as a temporary member.'}, + { + name: 'the dispatch string "true"', + options: {temporary: 'true'}, + summary: 'Hampus added the bot MyBot as a temporary member.', + }, + ])('summarizes a bot add with $name', ({options, summary}) => { + expect(present({action_type: AuditLogActionType.BOT_ADD, target_id: BOT_ID, options})).toEqual({ + summary, + rows: [], + blocks: [], + expandable: false, + }); + }); +}); + +describe('member presenters', () => { + it('render a target that is missing or not a snowflake as an unknown user chip', () => { + for (const target_id of [null, 'not-a-user']) { + const presentation = presentAuditLogEntry( + makeEntry({action_type: AuditLogActionType.MEMBER_KICK, target_id}), + fakeContext(), + ); + expect(presentation.summary.values.target).toEqual({kind: 'user', id: ''}); + } + }); + + it('never treat a missing actor and a missing target as the same member', () => { + expect( + present({ + action_type: AuditLogActionType.MEMBER_UPDATE, + user_id: null, + target_id: null, + changes: [change('nick', null, 'Ender')], + }).summary, + ).toBe('@ set the nickname of @ to Ender.'); + }); +}); diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberPresentation.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberPresentation.ts new file mode 100644 index 000000000..10ac6b778 --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberPresentation.ts @@ -0,0 +1,697 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import { + BOT_ADD_SUMMARY, + BOT_ADD_TEMPORARY_SUMMARY, + MEMBER_ACCENT_COLOR_REMOVED_ROW, + MEMBER_ACCENT_COLOR_SET_ROW, + MEMBER_AVATAR_CHANGED_ROW, + MEMBER_AVATAR_REMOVED_ROW, + MEMBER_AVATAR_SET_ROW, + MEMBER_BAN_ADD_SUMMARY, + MEMBER_BAN_ADD_TEMPORARY_SUMMARY, + MEMBER_BAN_DELETED_MESSAGES_ROW, + MEMBER_BAN_EXPIRY_PASSED_ROW, + MEMBER_BAN_EXPIRY_PENDING_ROW, + MEMBER_BAN_ORIGINAL_DATE_ROW, + MEMBER_BAN_ORIGINAL_MODERATOR_AND_DATE_ROW, + MEMBER_BAN_ORIGINAL_MODERATOR_ROW, + MEMBER_BAN_REMOVE_SUMMARY, + MEMBER_BANNER_CHANGED_ROW, + MEMBER_BANNER_REMOVED_ROW, + MEMBER_BANNER_SET_ROW, + MEMBER_BIO_CHANGED_ROW, + MEMBER_BIO_REMOVED_ROW, + MEMBER_BIO_SET_ROW, + MEMBER_DISCONNECT_SUMMARY, + MEMBER_DISCONNECT_UNKNOWN_CHANNEL_SUMMARY, + MEMBER_KICK_SUMMARY, + MEMBER_MOVE_SUMMARY, + MEMBER_MOVE_TO_SUMMARY, + MEMBER_MOVE_UNKNOWN_CHANNEL_SUMMARY, + MEMBER_NICKNAME_CHANGED_ROW, + MEMBER_NICKNAME_CHANGED_SUMMARY, + MEMBER_NICKNAME_REMOVED_ROW, + MEMBER_NICKNAME_REMOVED_SUMMARY, + MEMBER_NICKNAME_SET_ROW, + MEMBER_NICKNAME_SET_SUMMARY, + MEMBER_NO_LONGER_TEMPORARY_ROW, + MEMBER_OWN_ACCENT_COLOR_REMOVED_SUMMARY, + MEMBER_OWN_ACCENT_COLOR_SET_SUMMARY, + MEMBER_OWN_AVATAR_CHANGED_SUMMARY, + MEMBER_OWN_AVATAR_REMOVED_SUMMARY, + MEMBER_OWN_AVATAR_SET_SUMMARY, + MEMBER_OWN_BANNER_CHANGED_SUMMARY, + MEMBER_OWN_BANNER_REMOVED_SUMMARY, + MEMBER_OWN_BANNER_SET_SUMMARY, + MEMBER_OWN_BIO_CHANGED_SUMMARY, + MEMBER_OWN_BIO_REMOVED_SUMMARY, + MEMBER_OWN_BIO_SET_SUMMARY, + MEMBER_OWN_DISCONNECT_SUMMARY, + MEMBER_OWN_DISCONNECT_UNKNOWN_CHANNEL_SUMMARY, + MEMBER_OWN_MOVE_SUMMARY, + MEMBER_OWN_MOVE_TO_SUMMARY, + MEMBER_OWN_MOVE_UNKNOWN_CHANNEL_SUMMARY, + MEMBER_OWN_NICKNAME_CHANGED_SUMMARY, + MEMBER_OWN_NICKNAME_REMOVED_SUMMARY, + MEMBER_OWN_NICKNAME_SET_SUMMARY, + MEMBER_OWN_PROFILE_UPDATED_SUMMARY, + MEMBER_OWN_PRONOUNS_REMOVED_SUMMARY, + MEMBER_OWN_PRONOUNS_SET_SUMMARY, + MEMBER_PRONOUNS_REMOVED_ROW, + MEMBER_PRONOUNS_SET_ROW, + MEMBER_PRUNE_SUMMARY, + MEMBER_ROLE_ADDED_BY_SYSTEM_SUMMARY, + MEMBER_ROLE_ADDED_ROW, + MEMBER_ROLE_ADDED_SUMMARY, + MEMBER_ROLE_REMOVED_BY_SYSTEM_SUMMARY, + MEMBER_ROLE_REMOVED_ROW, + MEMBER_ROLE_REMOVED_SUMMARY, + MEMBER_ROLES_UPDATED_SUMMARY, + MEMBER_SERVER_DEAFEN_APPLIED_ROW, + MEMBER_SERVER_DEAFEN_APPLIED_SUMMARY, + MEMBER_SERVER_DEAFEN_REMOVED_ROW, + MEMBER_SERVER_DEAFEN_REMOVED_SUMMARY, + MEMBER_SERVER_MUTE_APPLIED_ROW, + MEMBER_SERVER_MUTE_APPLIED_SUMMARY, + MEMBER_SERVER_MUTE_REMOVED_ROW, + MEMBER_SERVER_MUTE_REMOVED_SUMMARY, + MEMBER_TIMEOUT_CHANGED_ROW, + MEMBER_TIMEOUT_CHANGED_SUMMARY, + MEMBER_TIMEOUT_REMOVED_ROW, + MEMBER_TIMEOUT_REMOVED_SUMMARY, + MEMBER_TIMEOUT_SET_ROW, + MEMBER_TIMEOUT_SET_SUMMARY, + MEMBER_UPDATED_SUMMARY, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages'; +import type { + AuditLogDetailRow, + AuditLogDomainResult, + AuditLogPlaceholder, + AuditLogSentence, + AuditLogTone, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogPresentationTypes'; +import { + actorPlaceholder, + decodeAuditReason, + entryTime, + readBoolean, + readChange, + readNumber, + readOption, + readSnowflake, + readString, + readStringArray, + readTimestamp, + roleIdDiff, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogValues'; +import {MS_PER_SECOND, SECONDS_PER_DAY} from '@fluxer/date_utils/src/DateConstants'; +import type {GuildAuditLogEntryResponse} from '@fluxer/schema/src/domains/guild/GuildAuditLogSchemas'; +import type {MessageDescriptor} from '@lingui/core'; + +const MAX_COLOR_VALUE = 0xffffff; + +type SentenceValues = AuditLogSentence['values']; + +type ValueChangeKind = 'set' | 'changed' | 'removed'; + +type ValueChange = {kind: 'set'; next: T} | {kind: 'changed'; previous: T; next: T} | {kind: 'removed'; previous: T}; + +type TimeoutChange = {kind: 'set' | 'changed'; until: number} | {kind: 'removed'}; + +interface MemberSubject { + actor: AuditLogPlaceholder; + target: AuditLogPlaceholder; + self: boolean; +} + +interface RoleChanges { + added: Array; + removed: Array; +} + +interface SingleRoleChange { + kind: 'added' | 'removed'; + roleId: string; +} + +interface MemberChangeGroup { + summary: AuditLogSentence | null; + summaryRows: Array; + rows: Array; +} + +interface VoiceStateMessages { + appliedSummary: MessageDescriptor; + removedSummary: MessageDescriptor; + appliedRow: MessageDescriptor; + removedRow: MessageDescriptor; +} + +interface ProfileGroupSpec { + key: string; + read: (value: unknown) => T | null; + values: (next: T) => SentenceValues; + tones: Record; + summaries: Record; + rows: Record; +} + +const SERVER_MUTE_MESSAGES: VoiceStateMessages = { + appliedSummary: MEMBER_SERVER_MUTE_APPLIED_SUMMARY, + removedSummary: MEMBER_SERVER_MUTE_REMOVED_SUMMARY, + appliedRow: MEMBER_SERVER_MUTE_APPLIED_ROW, + removedRow: MEMBER_SERVER_MUTE_REMOVED_ROW, +}; + +const SERVER_DEAFEN_MESSAGES: VoiceStateMessages = { + appliedSummary: MEMBER_SERVER_DEAFEN_APPLIED_SUMMARY, + removedSummary: MEMBER_SERVER_DEAFEN_REMOVED_SUMMARY, + appliedRow: MEMBER_SERVER_DEAFEN_APPLIED_ROW, + removedRow: MEMBER_SERVER_DEAFEN_REMOVED_ROW, +}; + +const AVATAR_GROUP: ProfileGroupSpec = { + key: 'avatar_hash', + read: readString, + values: () => ({}), + tones: {set: 'add', changed: 'neutral', removed: 'remove'}, + summaries: { + set: MEMBER_OWN_AVATAR_SET_SUMMARY, + changed: MEMBER_OWN_AVATAR_CHANGED_SUMMARY, + removed: MEMBER_OWN_AVATAR_REMOVED_SUMMARY, + }, + rows: {set: MEMBER_AVATAR_SET_ROW, changed: MEMBER_AVATAR_CHANGED_ROW, removed: MEMBER_AVATAR_REMOVED_ROW}, +}; + +const BANNER_GROUP: ProfileGroupSpec = { + key: 'banner_hash', + read: readString, + values: () => ({}), + tones: {set: 'add', changed: 'neutral', removed: 'remove'}, + summaries: { + set: MEMBER_OWN_BANNER_SET_SUMMARY, + changed: MEMBER_OWN_BANNER_CHANGED_SUMMARY, + removed: MEMBER_OWN_BANNER_REMOVED_SUMMARY, + }, + rows: {set: MEMBER_BANNER_SET_ROW, changed: MEMBER_BANNER_CHANGED_ROW, removed: MEMBER_BANNER_REMOVED_ROW}, +}; + +const BIO_GROUP: ProfileGroupSpec = { + key: 'bio', + read: readString, + values: (text) => ({text: {kind: 'text', value: text}}), + tones: {set: 'add', changed: 'neutral', removed: 'remove'}, + summaries: { + set: MEMBER_OWN_BIO_SET_SUMMARY, + changed: MEMBER_OWN_BIO_CHANGED_SUMMARY, + removed: MEMBER_OWN_BIO_REMOVED_SUMMARY, + }, + rows: {set: MEMBER_BIO_SET_ROW, changed: MEMBER_BIO_CHANGED_ROW, removed: MEMBER_BIO_REMOVED_ROW}, +}; + +const PRONOUNS_GROUP: ProfileGroupSpec = { + key: 'pronouns', + read: readString, + values: (text) => ({text: {kind: 'text', value: text}}), + tones: {set: 'neutral', changed: 'neutral', removed: 'remove'}, + summaries: { + set: MEMBER_OWN_PRONOUNS_SET_SUMMARY, + changed: MEMBER_OWN_PRONOUNS_SET_SUMMARY, + removed: MEMBER_OWN_PRONOUNS_REMOVED_SUMMARY, + }, + rows: {set: MEMBER_PRONOUNS_SET_ROW, changed: MEMBER_PRONOUNS_SET_ROW, removed: MEMBER_PRONOUNS_REMOVED_ROW}, +}; + +const ACCENT_COLOR_GROUP: ProfileGroupSpec = { + key: 'accent_color', + read: readColor, + values: (color) => ({color: {kind: 'color', value: color}}), + tones: {set: 'neutral', changed: 'neutral', removed: 'remove'}, + summaries: { + set: MEMBER_OWN_ACCENT_COLOR_SET_SUMMARY, + changed: MEMBER_OWN_ACCENT_COLOR_SET_SUMMARY, + removed: MEMBER_OWN_ACCENT_COLOR_REMOVED_SUMMARY, + }, + rows: { + set: MEMBER_ACCENT_COLOR_SET_ROW, + changed: MEMBER_ACCENT_COLOR_SET_ROW, + removed: MEMBER_ACCENT_COLOR_REMOVED_ROW, + }, +}; + +function sentence(descriptor: MessageDescriptor, values: SentenceValues): AuditLogSentence { + return {descriptor, values}; +} + +function detailRow( + id: string, + tone: AuditLogTone, + descriptor: MessageDescriptor, + values: SentenceValues = {}, +): AuditLogDetailRow { + return {id, tone, sentence: {descriptor, values}}; +} + +function summaryOnly(summary: AuditLogSentence): AuditLogDomainResult { + return {summary, rows: [], blocks: []}; +} + +function userPlaceholder(id: string): AuditLogPlaceholder { + return {kind: 'user', id}; +} + +function channelPlaceholder(id: string): AuditLogPlaceholder { + return {kind: 'channel', id, recordedName: null, fallback: 'channel'}; +} + +function rolePlaceholder(id: string, recordedName: string | null): AuditLogPlaceholder { + return {kind: 'role', id, recordedName}; +} + +function datePlaceholder(timestamp: number): AuditLogPlaceholder { + return {kind: 'date', timestamp}; +} + +function namePlaceholder(value: string): AuditLogPlaceholder { + return {kind: 'name', value}; +} + +function readColor(value: unknown): number | null { + const color = readNumber(value); + return color !== null && Number.isInteger(color) && color >= 0 && color <= MAX_COLOR_VALUE ? color : null; +} + +function readMemberSubject(entry: GuildAuditLogEntryResponse): MemberSubject { + const actorId = readSnowflake(entry.user_id); + const targetId = readSnowflake(entry.target_id); + return { + actor: actorPlaceholder(entry), + target: userPlaceholder(targetId ?? ''), + self: actorId !== null && actorId === targetId, + }; +} + +function readValueChange( + entry: GuildAuditLogEntryResponse, + key: string, + read: (value: unknown) => T | null, +): ValueChange | null { + const change = readChange(entry, key); + if (change === null) return null; + const previous = read(change.oldValue); + const next = read(change.newValue); + if (previous === next) return null; + if (previous === null) return next === null ? null : {kind: 'set', next}; + if (next === null) return {kind: 'removed', previous}; + return {kind: 'changed', previous, next}; +} + +function readToggle(entry: GuildAuditLogEntryResponse, key: string): boolean | null { + const change = readChange(entry, key); + if (change === null) return null; + const previous = readBoolean(change.oldValue); + const next = readBoolean(change.newValue); + return previous === null || next === null || previous === next ? null : next; +} + +function readTimeoutChange(entry: GuildAuditLogEntryResponse): TimeoutChange | null { + const change = readChange(entry, 'communication_disabled_until'); + if (change === null) return null; + const time = entryTime(entry); + const previous = readTimestamp(change.oldValue); + const next = readTimestamp(change.newValue); + const wasActive = previous !== null && previous > time; + if (next !== null && next > time) { + if (!wasActive) return {kind: 'set', until: next}; + return previous === next ? null : {kind: 'changed', until: next}; + } + return wasActive ? {kind: 'removed'} : null; +} + +function readRoleChanges(entry: GuildAuditLogEntryResponse): RoleChanges { + const change = readChange(entry, 'roles'); + const previous = readStringArray(change?.oldValue); + const next = readStringArray(change?.newValue); + if (previous === null || next === null) return {added: [], removed: []}; + const {added, removed} = roleIdDiff(previous, next); + const isRoleId = (id: string) => readSnowflake(id) !== null; + return {added: added.filter(isRoleId), removed: removed.filter(isRoleId)}; +} + +function readSingleRoleChange(changes: RoleChanges): SingleRoleChange | null { + const [addedId] = changes.added; + const [removedId] = changes.removed; + if (addedId !== undefined && changes.added.length === 1 && changes.removed.length === 0) { + return {kind: 'added', roleId: addedId}; + } + if (removedId !== undefined && changes.removed.length === 1 && changes.added.length === 0) { + return {kind: 'removed', roleId: removedId}; + } + return null; +} + +function roleRows(changes: RoleChanges): Array { + return [ + ...changes.added.map((id) => + detailRow(`role_added_${id}`, 'add', MEMBER_ROLE_ADDED_ROW, {role: rolePlaceholder(id, null)}), + ), + ...changes.removed.map((id) => + detailRow(`role_removed_${id}`, 'remove', MEMBER_ROLE_REMOVED_ROW, {role: rolePlaceholder(id, null)}), + ), + ]; +} + +function temporaryRows(entry: GuildAuditLogEntryResponse): Array { + const change = readChange(entry, 'temporary'); + if (change === null || readBoolean(change.oldValue) !== true || readBoolean(change.newValue) !== false) return []; + return [detailRow('temporary', 'neutral', MEMBER_NO_LONGER_TEMPORARY_ROW)]; +} + +function roleChangeSummary( + subject: MemberSubject, + change: SingleRoleChange, + role: AuditLogPlaceholder, +): AuditLogSentence { + const {actor, target} = subject; + return change.kind === 'added' + ? sentence(MEMBER_ROLE_ADDED_SUMMARY, {actor, target, role}) + : sentence(MEMBER_ROLE_REMOVED_SUMMARY, {actor, target, role}); +} + +function nicknameGroup(entry: GuildAuditLogEntryResponse, subject: MemberSubject): MemberChangeGroup | null { + const change = readValueChange(entry, 'nick', readString); + if (change === null) return null; + const {actor, target, self} = subject; + switch (change.kind) { + case 'set': { + const nick = namePlaceholder(change.next); + return { + summary: self + ? sentence(MEMBER_OWN_NICKNAME_SET_SUMMARY, {actor, nick}) + : sentence(MEMBER_NICKNAME_SET_SUMMARY, {actor, target, nick}), + summaryRows: [], + rows: [detailRow('nick', 'add', MEMBER_NICKNAME_SET_ROW, {nick})], + }; + } + case 'changed': { + const oldNick = namePlaceholder(change.previous); + const newNick = namePlaceholder(change.next); + return { + summary: self + ? sentence(MEMBER_OWN_NICKNAME_CHANGED_SUMMARY, {actor, oldNick, newNick}) + : sentence(MEMBER_NICKNAME_CHANGED_SUMMARY, {actor, target, oldNick, newNick}), + summaryRows: [], + rows: [detailRow('nick', 'neutral', MEMBER_NICKNAME_CHANGED_ROW, {oldNick, newNick})], + }; + } + case 'removed': { + const nick = namePlaceholder(change.previous); + return { + summary: self + ? sentence(MEMBER_OWN_NICKNAME_REMOVED_SUMMARY, {actor, nick}) + : sentence(MEMBER_NICKNAME_REMOVED_SUMMARY, {actor, target, nick}), + summaryRows: [], + rows: [detailRow('nick', 'remove', MEMBER_NICKNAME_REMOVED_ROW, {nick})], + }; + } + } +} + +function rolesGroup(entry: GuildAuditLogEntryResponse, subject: MemberSubject): MemberChangeGroup | null { + const changes = readRoleChanges(entry); + const rows = roleRows(changes); + if (rows.length === 0) return null; + const single = readSingleRoleChange(changes); + if (single !== null) { + return { + summary: roleChangeSummary(subject, single, rolePlaceholder(single.roleId, null)), + summaryRows: [], + rows, + }; + } + const {actor, target} = subject; + return {summary: sentence(MEMBER_ROLES_UPDATED_SUMMARY, {actor, target}), summaryRows: rows, rows}; +} + +function timeoutGroup(entry: GuildAuditLogEntryResponse, subject: MemberSubject): MemberChangeGroup | null { + const change = readTimeoutChange(entry); + if (change === null) return null; + const {actor, target} = subject; + switch (change.kind) { + case 'set': { + const date = datePlaceholder(change.until); + return { + summary: sentence(MEMBER_TIMEOUT_SET_SUMMARY, {actor, target, date}), + summaryRows: [], + rows: [detailRow('communication_disabled_until', 'add', MEMBER_TIMEOUT_SET_ROW, {date})], + }; + } + case 'changed': { + const date = datePlaceholder(change.until); + return { + summary: sentence(MEMBER_TIMEOUT_CHANGED_SUMMARY, {actor, target, date}), + summaryRows: [], + rows: [detailRow('communication_disabled_until', 'neutral', MEMBER_TIMEOUT_CHANGED_ROW, {date})], + }; + } + case 'removed': + return { + summary: sentence(MEMBER_TIMEOUT_REMOVED_SUMMARY, {actor, target}), + summaryRows: [], + rows: [detailRow('communication_disabled_until', 'remove', MEMBER_TIMEOUT_REMOVED_ROW)], + }; + } +} + +function voiceStateGroup( + entry: GuildAuditLogEntryResponse, + subject: MemberSubject, + key: string, + messages: VoiceStateMessages, +): MemberChangeGroup | null { + const applied = readToggle(entry, key); + if (applied === null) return null; + const {actor, target} = subject; + return { + summary: sentence(applied ? messages.appliedSummary : messages.removedSummary, {actor, target}), + summaryRows: [], + rows: [applied ? detailRow(key, 'add', messages.appliedRow) : detailRow(key, 'remove', messages.removedRow)], + }; +} + +function profileGroup( + entry: GuildAuditLogEntryResponse, + subject: MemberSubject, + spec: ProfileGroupSpec, +): MemberChangeGroup | null { + const change = readValueChange(entry, spec.key, spec.read); + if (change === null) return null; + const values = change.kind === 'removed' ? {} : spec.values(change.next); + return { + summary: subject.self ? sentence(spec.summaries[change.kind], {actor: subject.actor, ...values}) : null, + summaryRows: [], + rows: [detailRow(spec.key, spec.tones[change.kind], spec.rows[change.kind], values)], + }; +} + +function readBanDurationSeconds(entry: GuildAuditLogEntryResponse): number | null { + const expiresAt = readTimestamp(readChange(entry, 'expires_at')?.newValue); + if (expiresAt === null) return null; + const bannedAt = readTimestamp(readChange(entry, 'banned_at')?.newValue) ?? entryTime(entry); + const seconds = Math.round((expiresAt - bannedAt) / MS_PER_SECOND); + return seconds > 0 ? seconds : null; +} + +function readDeletedMessageSeconds(entry: GuildAuditLogEntryResponse): number | null { + const seconds = readNumber(readOption(entry, 'delete_message_seconds')); + if (seconds !== null && seconds > 0) return seconds; + const days = readNumber(readOption(entry, 'delete_member_days')); + return days !== null && Number.isInteger(days) && days > 0 ? days * SECONDS_PER_DAY : null; +} + +function originalBanRows(entry: GuildAuditLogEntryResponse): Array { + const moderatorId = readSnowflake(readChange(entry, 'moderator_id')?.oldValue); + const bannedAt = readTimestamp(readChange(entry, 'banned_at')?.oldValue); + const otherModeratorId = moderatorId !== null && moderatorId !== entry.user_id ? moderatorId : null; + if (otherModeratorId !== null && bannedAt !== null) { + return [ + detailRow('original_ban', 'neutral', MEMBER_BAN_ORIGINAL_MODERATOR_AND_DATE_ROW, { + user: userPlaceholder(otherModeratorId), + date: datePlaceholder(bannedAt), + }), + ]; + } + if (bannedAt !== null) { + return [detailRow('original_ban', 'neutral', MEMBER_BAN_ORIGINAL_DATE_ROW, {date: datePlaceholder(bannedAt)})]; + } + if (otherModeratorId !== null) { + return [ + detailRow('original_ban', 'neutral', MEMBER_BAN_ORIGINAL_MODERATOR_ROW, { + user: userPlaceholder(otherModeratorId), + }), + ]; + } + return []; +} + +function banExpiryRows(entry: GuildAuditLogEntryResponse): Array { + const expiresAt = readTimestamp(readChange(entry, 'expires_at')?.oldValue); + if (expiresAt === null) return []; + const descriptor = expiresAt > entryTime(entry) ? MEMBER_BAN_EXPIRY_PENDING_ROW : MEMBER_BAN_EXPIRY_PASSED_ROW; + return [detailRow('ban_expiry', 'neutral', descriptor, {date: datePlaceholder(expiresAt)})]; +} + +export function presentMemberKick(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + const {actor, target} = readMemberSubject(entry); + return summaryOnly(sentence(MEMBER_KICK_SUMMARY, {actor, target})); +} + +export function presentMemberPrune(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + return summaryOnly(sentence(MEMBER_PRUNE_SUMMARY, {actor: actorPlaceholder(entry)})); +} + +export function presentMemberBanAdd(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + const {actor, target} = readMemberSubject(entry); + const durationSeconds = readBanDurationSeconds(entry); + const deletedSeconds = readDeletedMessageSeconds(entry); + const banReason = decodeAuditReason(readChange(entry, 'reason')?.newValue); + return { + summary: + durationSeconds === null + ? sentence(MEMBER_BAN_ADD_SUMMARY, {actor, target}) + : sentence(MEMBER_BAN_ADD_TEMPORARY_SUMMARY, { + actor, + target, + duration: {kind: 'duration', seconds: durationSeconds}, + }), + rows: + deletedSeconds === null + ? [] + : [ + detailRow('delete_messages', 'remove', MEMBER_BAN_DELETED_MESSAGES_ROW, { + duration: {kind: 'duration', seconds: deletedSeconds}, + }), + ], + blocks: + banReason === null || banReason === decodeAuditReason(entry.reason) + ? [] + : [{kind: 'ban_reason', text: banReason}], + }; +} + +export function presentMemberBanRemove(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + const {actor, target} = readMemberSubject(entry); + const banReason = decodeAuditReason(readChange(entry, 'reason')?.oldValue); + return { + summary: sentence(MEMBER_BAN_REMOVE_SUMMARY, {actor, target}), + rows: [...originalBanRows(entry), ...banExpiryRows(entry)], + blocks: banReason === null ? [] : [{kind: 'ban_reason', text: banReason}], + }; +} + +export function presentMemberUpdate(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + const subject = readMemberSubject(entry); + const groups = [ + nicknameGroup(entry, subject), + rolesGroup(entry, subject), + timeoutGroup(entry, subject), + voiceStateGroup(entry, subject, 'mute', SERVER_MUTE_MESSAGES), + voiceStateGroup(entry, subject, 'deaf', SERVER_DEAFEN_MESSAGES), + profileGroup(entry, subject, AVATAR_GROUP), + profileGroup(entry, subject, BANNER_GROUP), + profileGroup(entry, subject, BIO_GROUP), + profileGroup(entry, subject, PRONOUNS_GROUP), + profileGroup(entry, subject, ACCENT_COLOR_GROUP), + ].filter((group): group is MemberChangeGroup => group !== null); + const temporary = temporaryRows(entry); + const [onlyGroup] = groups; + if (groups.length === 1 && onlyGroup?.summary) { + return {summary: onlyGroup.summary, rows: [...onlyGroup.summaryRows, ...temporary], blocks: []}; + } + const {actor, target, self} = subject; + return { + summary: self + ? sentence(MEMBER_OWN_PROFILE_UPDATED_SUMMARY, {actor}) + : sentence(MEMBER_UPDATED_SUMMARY, {actor, target}), + rows: [...groups.flatMap((group) => group.rows), ...temporary], + blocks: [], + }; +} + +export function presentMemberRoleUpdate(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + const subject = readMemberSubject(entry); + const changes = readRoleChanges(entry); + const single = readSingleRoleChange(changes); + const temporary = temporaryRows(entry); + if (single === null) { + const {actor, target} = subject; + return { + summary: sentence(MEMBER_ROLES_UPDATED_SUMMARY, {actor, target}), + rows: [...roleRows(changes), ...temporary], + blocks: [], + }; + } + const role = rolePlaceholder(single.roleId, readString(readOption(entry, 'role_name'))); + const {target} = subject; + const summary = + subject.actor.kind !== 'system' + ? roleChangeSummary(subject, single, role) + : single.kind === 'added' + ? sentence(MEMBER_ROLE_ADDED_BY_SYSTEM_SUMMARY, {target, role}) + : sentence(MEMBER_ROLE_REMOVED_BY_SYSTEM_SUMMARY, {target, role}); + return {summary, rows: temporary, blocks: []}; +} + +export function presentMemberMove(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + const {actor, target, self} = readMemberSubject(entry); + const change = readChange(entry, 'channel_id'); + const oldChannelId = readSnowflake(change?.oldValue); + const newChannelId = readSnowflake(change?.newValue) ?? readSnowflake(readOption(entry, 'channel_id')); + if (newChannelId === null) { + return summaryOnly( + self + ? sentence(MEMBER_OWN_MOVE_UNKNOWN_CHANNEL_SUMMARY, {actor}) + : sentence(MEMBER_MOVE_UNKNOWN_CHANNEL_SUMMARY, {actor, target}), + ); + } + const newChannel = channelPlaceholder(newChannelId); + if (oldChannelId === null) { + return summaryOnly( + self + ? sentence(MEMBER_OWN_MOVE_TO_SUMMARY, {actor, channel: newChannel}) + : sentence(MEMBER_MOVE_TO_SUMMARY, {actor, target, channel: newChannel}), + ); + } + const oldChannel = channelPlaceholder(oldChannelId); + return summaryOnly( + self + ? sentence(MEMBER_OWN_MOVE_SUMMARY, {actor, oldChannel, newChannel}) + : sentence(MEMBER_MOVE_SUMMARY, {actor, target, oldChannel, newChannel}), + ); +} + +export function presentMemberDisconnect(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + const {actor, target, self} = readMemberSubject(entry); + const channelId = + readSnowflake(readChange(entry, 'channel_id')?.oldValue) ?? readSnowflake(readOption(entry, 'channel_id')); + if (channelId === null) { + return summaryOnly( + self + ? sentence(MEMBER_OWN_DISCONNECT_UNKNOWN_CHANNEL_SUMMARY, {actor}) + : sentence(MEMBER_DISCONNECT_UNKNOWN_CHANNEL_SUMMARY, {actor, target}), + ); + } + const channel = channelPlaceholder(channelId); + return summaryOnly( + self + ? sentence(MEMBER_OWN_DISCONNECT_SUMMARY, {actor, channel}) + : sentence(MEMBER_DISCONNECT_SUMMARY, {actor, target, channel}), + ); +} + +export function presentBotAdd(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + const {actor, target} = readMemberSubject(entry); + const temporary = readBoolean(readOption(entry, 'temporary')) === true; + return summaryOnly(sentence(temporary ? BOT_ADD_TEMPORARY_SUMMARY : BOT_ADD_SUMMARY, {actor, target})); +} diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogMessagesLint.test.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogMessagesLint.test.ts new file mode 100644 index 000000000..d57468129 --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogMessagesLint.test.ts @@ -0,0 +1,116 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import * as ChannelMessages from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages'; +import * as ExpressionMessageMessages from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages'; +import * as GuildMessages from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages'; +import * as InviteWebhookMessages from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages'; +import * as MemberMessages from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages'; +import * as RoleMessages from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages'; +import * as SharedMessages from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages'; +import {toText} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogTestUtils'; +import {type MessageDescriptor, setupI18n} from '@lingui/core'; +import {describe, expect, it, vi} from 'vitest'; + +vi.mock('@lingui/core/macro', () => { + const descriptor = (value: unknown): unknown => (typeof value === 'string' ? {message: value} : value); + return {msg: descriptor, t: descriptor, plural: () => '', select: () => '', selectOrdinal: () => ''}; +}); + +vi.mock('@app/features/app/config/Config', () => ({ + default: { + PUBLIC_BUILD_VERSION: 'test', + PUBLIC_RELEASE_CHANNEL: 'canary', + PUBLIC_BOOTSTRAP_API_ENDPOINT: 'https://example.invalid', + PUBLIC_BOOTSTRAP_API_PUBLIC_ENDPOINT: 'https://example.invalid', + }, +})); + +const MESSAGE_MODULES: Record> = { + AuditLogChannelMessages: ChannelMessages, + AuditLogExpressionMessageMessages: ExpressionMessageMessages, + AuditLogGuildMessages: GuildMessages, + AuditLogInviteWebhookMessages: InviteWebhookMessages, + AuditLogMemberMessages: MemberMessages, + AuditLogRoleMessages: RoleMessages, + AuditLogSharedMessages: SharedMessages, +}; + +const ARGUMENT_PATTERN = /\{\s*(\w+)\s*[,}]/g; +const NUMERIC_ARGUMENT_PATTERN = /\{\s*(\w+)\s*,\s*(?:plural|selectordinal)\s*,/g; +const VAGUE_SET_PATTERN = /^(Set|Updated) \{\w+\} (to|from)/; +const DASH_OR_SEMICOLON_PATTERN = /[–—;]/; + +const i18n = setupI18n({locale: 'en', messages: {en: {}}}); + +const DESCRIPTORS = Object.entries(MESSAGE_MODULES).flatMap(([moduleName, exports]) => + Object.entries(exports).map(([exportName, descriptor]) => ({ + name: `${moduleName}.${exportName}`, + descriptor: descriptor as MessageDescriptor, + })), +); + +function sampleValues(message: string): Record { + const numeric = new Set(Array.from(message.matchAll(NUMERIC_ARGUMENT_PATTERN), (match) => match[1])); + const values: Record = {}; + for (const match of message.matchAll(ARGUMENT_PATTERN)) { + const name = match[1]; + values[name] = numeric.has(name) ? 2 : `sample ${name}`; + } + return values; +} + +describe('audit log messages', () => { + it('finds the descriptors of every Messages file', () => { + for (const [moduleName, exports] of Object.entries(MESSAGE_MODULES)) { + expect(Object.keys(exports).length, moduleName).toBeGreaterThan(0); + } + }); + + it.each(DESCRIPTORS)('$name is a descriptor with a message and a translator comment', ({descriptor}) => { + expect(typeof descriptor.message).toBe('string'); + expect(descriptor.message?.trim()).not.toBe(''); + expect(typeof descriptor.comment).toBe('string'); + expect(descriptor.comment?.trim()).not.toBe(''); + }); + + it.each(DESCRIPTORS)('$name formats with sample values and leaves no braces', ({descriptor}) => { + const message = descriptor.message ?? ''; + const formatted = i18n._(descriptor, sampleValues(message)); + expect(formatted).not.toBe(''); + expect(formatted).not.toContain('{'); + expect(formatted).not.toContain('}'); + }); + + it.each(DESCRIPTORS)('$name names every placeholder in its translator comment', ({descriptor}) => { + const comment = descriptor.comment ?? ''; + for (const match of (descriptor.message ?? '').matchAll(ARGUMENT_PATTERN)) { + expect(comment, match[1]).toContain(`{${match[1]}}`); + } + }); + + it.each(DESCRIPTORS)('$name has no dash or semicolon in its message or translator comment', ({descriptor}) => { + expect(descriptor.message ?? '').not.toMatch(DASH_OR_SEMICOLON_PATTERN); + expect(descriptor.comment ?? '').not.toMatch(DASH_OR_SEMICOLON_PATTERN); + }); + + it.each(DESCRIPTORS)('$name does not use the vague set or updated pattern', ({descriptor}) => { + const message = descriptor.message ?? ''; + expect(message).not.toMatch(VAGUE_SET_PATTERN); + expect(message).not.toContain('Value for'); + }); + + it('rejects a sentence whose values do not match its message placeholders', () => { + const descriptor = ChannelMessages.CHANNEL_NAME_CHANGED_ROW; + expect(() => toText({descriptor, values: {oldName: {kind: 'name', value: 'a'}}})).toThrow('Not passed: [newName]'); + expect(() => + toText({ + descriptor, + values: { + oldName: {kind: 'name', value: 'a'}, + newName: {kind: 'name', value: 'b'}, + name: {kind: 'name', value: 'c'}, + }, + }), + ).toThrow('Not in the message: [name]'); + }); +}); diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogPresentation.test.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogPresentation.test.ts new file mode 100644 index 000000000..37cd92b00 --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogPresentation.test.ts @@ -0,0 +1,273 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {presentMemberBanAdd} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogMemberPresentation'; +import {presentAuditLogEntry} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogPresentation'; +import type { + AuditLogDomainResult, + AuditLogPlaceholder, + AuditLogSentence, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogPresentationTypes'; +import { + CENTERED_LABEL, + UNKNOWN_ACTION_SUMMARY, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages'; +import { + fakeContext, + makeEntry, + resultToText, + TEST_ACTOR_ID, + TEST_GUILD_ID, + toText, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogTestUtils'; +import {AuditLogActionType} from '@fluxer/constants/src/AuditLogActionType'; +import {Permissions} from '@fluxer/constants/src/ChannelConstants'; +import {describe, expect, it, vi} from 'vitest'; + +vi.mock('@lingui/core/macro', () => { + const descriptor = (value: unknown): unknown => (typeof value === 'string' ? {message: value} : value); + return {msg: descriptor, t: descriptor, plural: () => '', select: () => '', selectOrdinal: () => ''}; +}); + +vi.mock('@app/features/app/config/Config', () => ({ + default: { + PUBLIC_BUILD_VERSION: 'test', + PUBLIC_RELEASE_CHANNEL: 'canary', + PUBLIC_BOOTSTRAP_API_ENDPOINT: 'https://example.invalid', + PUBLIC_BOOTSTRAP_API_PUBLIC_ENDPOINT: 'https://example.invalid', + }, +})); + +vi.mock('@app/features/guild/utils/guild_tabs/audit_log/AuditLogMemberPresentation', async (importOriginal) => { + const actual = + await importOriginal(); + return {...actual, presentMemberBanAdd: vi.fn(actual.presentMemberBanAdd)}; +}); + +const ACTION_TYPES = Object.values(AuditLogActionType).filter( + (value): value is AuditLogActionType => typeof value === 'number', +); +const UNKNOWN_ACTION_TYPE = 999 as AuditLogActionType; +const ACTOR: AuditLogPlaceholder = {kind: 'user', id: TEST_ACTOR_ID}; + +function sentence(message: string, values: AuditLogSentence['values']): AuditLogSentence { + return {descriptor: {id: message, message}, values}; +} + +function domainResult(overrides: Partial): AuditLogDomainResult { + return {summary: sentence('{actor} did a test action.', {actor: ACTOR}), rows: [], blocks: [], ...overrides}; +} + +describe('presentAuditLogEntry', () => { + it('gives every action type a summary other than the unknown action summary', () => { + const unpresented = ACTION_TYPES.filter( + (actionType) => + presentAuditLogEntry(makeEntry({action_type: actionType}), fakeContext()).summary.descriptor.message === + UNKNOWN_ACTION_SUMMARY.message, + ).map((actionType) => AuditLogActionType[actionType]); + expect(unpresented).toEqual([]); + }); + + it('formats the summary of every action type with placeholders that match its message', () => { + for (const actionType of ACTION_TYPES) { + const presentation = presentAuditLogEntry(makeEntry({action_type: actionType}), fakeContext()); + expect(() => resultToText(presentation)).not.toThrow(); + } + }); + + it('uses the unknown action summary for an action type this version does not know', () => { + const presentation = presentAuditLogEntry(makeEntry({action_type: UNKNOWN_ACTION_TYPE}), fakeContext()); + expect(presentation.summary.descriptor).toBe(UNKNOWN_ACTION_SUMMARY); + expect({...resultToText(presentation), expandable: presentation.expandable}).toEqual({ + summary: `@${TEST_ACTOR_ID} made a change that this version of the app cannot show.`, + rows: [], + blocks: [], + expandable: false, + }); + }); + + it('names the system as the actor of an unknown action it wrote', () => { + const presentation = presentAuditLogEntry( + makeEntry({action_type: UNKNOWN_ACTION_TYPE, user_id: '0'}), + fakeContext(), + ); + expect(resultToText(presentation).summary).toBe('System made a change that this version of the app cannot show.'); + }); + + it('passes the entry and context to the presenter for its action type', () => { + const entry = makeEntry({action_type: AuditLogActionType.MEMBER_BAN_ADD, target_id: '1400000000000000100'}); + const context = fakeContext(); + presentAuditLogEntry(entry, context); + expect(presentMemberBanAdd).toHaveBeenLastCalledWith(entry, context); + }); + + it('puts the decoded Reason block before the domain blocks and becomes expandable', () => { + vi.mocked(presentMemberBanAdd).mockReturnValueOnce( + domainResult({blocks: [{kind: 'ban_reason', text: 'Raiding the server'}]}), + ); + const presentation = presentAuditLogEntry( + makeEntry({action_type: AuditLogActionType.MEMBER_BAN_ADD, reason: ' Raid%20cleanup '}), + fakeContext(), + ); + expect(presentation.blocks).toEqual([ + {kind: 'reason', text: 'Raid cleanup'}, + {kind: 'ban_reason', text: 'Raiding the server'}, + ]); + expect(presentation.expandable).toBe(true); + }); + + it('adds no Reason block for a blank reason', () => { + const presentation = presentAuditLogEntry( + makeEntry({action_type: UNKNOWN_ACTION_TYPE, reason: ' '}), + fakeContext(), + ); + expect(presentation.blocks).toEqual([]); + expect(presentation.expandable).toBe(false); + }); + + it('is expandable when the domain returns rows and no blocks', () => { + vi.mocked(presentMemberBanAdd).mockReturnValueOnce( + domainResult({ + rows: [{id: 'row', tone: 'remove', sentence: sentence('Deleted a test row.', {})}], + }), + ); + const presentation = presentAuditLogEntry( + makeEntry({action_type: AuditLogActionType.MEMBER_BAN_ADD}), + fakeContext(), + ); + expect({...resultToText(presentation), expandable: presentation.expandable}).toEqual({ + summary: `@${TEST_ACTOR_ID} did a test action.`, + rows: ['- Deleted a test row.'], + blocks: [], + expandable: true, + }); + }); + + it('is expandable when the domain returns only blocks', () => { + vi.mocked(presentMemberBanAdd).mockReturnValueOnce(domainResult({blocks: [{kind: 'ban_reason', text: 'Spam'}]})); + const presentation = presentAuditLogEntry( + makeEntry({action_type: AuditLogActionType.MEMBER_BAN_ADD}), + fakeContext(), + ); + expect(presentation.blocks).toEqual([{kind: 'ban_reason', text: 'Spam'}]); + expect(presentation.expandable).toBe(true); + }); + + it('is not expandable with no rows and no blocks', () => { + vi.mocked(presentMemberBanAdd).mockReturnValueOnce(domainResult({})); + const presentation = presentAuditLogEntry( + makeEntry({action_type: AuditLogActionType.MEMBER_BAN_ADD}), + fakeContext(), + ); + expect(presentation.expandable).toBe(false); + }); +}); + +describe('fakeContext', () => { + it('resolves only the names it was given', () => { + const context = fakeContext({webhooks: {'1': 'Deploy bot'}, emojis: {'2': 'blobcat'}, stickers: {'3': 'wave'}}); + expect(context.guildId).toBe(TEST_GUILD_ID); + expect(context.getWebhookName('1')).toBe('Deploy bot'); + expect(context.getEmojiName('2')).toBe('blobcat'); + expect(context.getStickerName('3')).toBe('wave'); + expect(context.getWebhookName('2')).toBeNull(); + expect(fakeContext().getEmojiName('2')).toBeNull(); + }); +}); + +describe('toText', () => { + it('renders users by id or by the given names, and the system by its label', () => { + const text = sentence('{actor} kicked {target}.', {actor: {kind: 'system'}, target: {kind: 'user', id: '42'}}); + expect(toText(text)).toBe('System kicked @42.'); + expect(toText(text, {'42': 'ender'})).toBe('System kicked ender.'); + }); + + it('renders channels and roles from the recorded name, else the id, and @everyone for the guild id', () => { + const text = sentence('{channel} {category} {role} {deletedRole} {everyone}', { + channel: {kind: 'channel', id: '10', recordedName: 'general', fallback: 'channel'}, + category: {kind: 'channel', id: '11', recordedName: null, fallback: 'category'}, + role: {kind: 'role', id: '20', recordedName: 'Moderators'}, + deletedRole: {kind: 'role', id: '21', recordedName: null}, + everyone: {kind: 'role', id: TEST_GUILD_ID, recordedName: '@everyone'}, + }); + expect(toText(text, {'10': 'ignored', '20': 'ignored'})).toBe('#general #11 @Moderators @21 @everyone'); + }); + + it('renders names, text, emojis, dates, colors and labels', () => { + const text = sentence('{name}|{text}|{emoji}|{date}|{color}|{shortColor}|{label}', { + name: {kind: 'name', value: 'Deploy bot'}, + text: {kind: 'text', value: 'Be nice'}, + emoji: {kind: 'emoji', id: null, name: 'blobcat'}, + date: {kind: 'date', timestamp: Date.parse('2026-09-01T12:00:00.000Z')}, + color: {kind: 'color', value: 0x5865f2}, + shortColor: {kind: 'color', value: 0xff}, + label: {kind: 'label', descriptor: CENTERED_LABEL}, + }); + expect(toText(text)).toBe('Deploy bot|Be nice|:blobcat:|2026-09-01T12:00:00.000Z|#5865F2|#0000FF|Centered'); + }); + + it('renders durations in the largest whole unit', () => { + const text = (seconds: number) => toText(sentence('{duration}', {duration: {kind: 'duration', seconds}})); + expect(text(300)).toBe('5 minutes'); + expect(text(60)).toBe('1 minute'); + expect(text(90)).toBe('90 seconds'); + expect(text(3600)).toBe('1 hour'); + expect(text(259199.993)).toBe('3 days'); + }); + + it('renders permission titles as a list and caps lists longer than eight', () => { + const text = (flags: Array) => + toText(sentence('Allowed {permissions}.', {permissions: {kind: 'permissions', flags}})); + expect(text([Permissions.VIEW_CHANNEL])).toBe('Allowed View channel.'); + expect(text([Permissions.VIEW_CHANNEL, Permissions.SEND_MESSAGES])).toBe('Allowed View channel and Send messages.'); + const flags = Object.values(Permissions); + expect(text(flags.slice(0, 8))).toBe( + 'Allowed Create invite links, Kick members, Ban members, Administrator, Manage channels, Manage community, Add reactions, and View activity log.', + ); + expect(text(flags.slice(0, 9))).toBe( + 'Allowed Create invite links, Kick members, Ban members, Administrator, Manage channels, Manage community, Add reactions, and 2 more permissions.', + ); + }); + + it('passes numbers through to ICU plurals', () => { + const text = (count: number) => + toText(sentence('{actor} deleted {count, plural, one {# message} other {# messages}}.', {actor: ACTOR, count})); + expect(text(1)).toBe(`@${TEST_ACTOR_ID} deleted 1 message.`); + expect(text(5)).toBe(`@${TEST_ACTOR_ID} deleted 5 messages.`); + }); + + it('throws when the passed placeholders do not match the message', () => { + expect(() => + toText( + sentence('{actor} pinned a message.', { + actor: ACTOR, + channel: {kind: 'channel', id: '1', recordedName: null, fallback: 'channel'}, + }), + ), + ).toThrow(/Not in the message: \[channel\]/); + expect(() => toText(sentence('{actor} pinned a message in {channel}.', {actor: ACTOR}))).toThrow( + /Not passed: \[channel\]/, + ); + }); +}); + +describe('resultToText', () => { + it('marks rows by tone and keeps blocks', () => { + expect( + resultToText( + domainResult({ + rows: [ + {id: 'add', tone: 'add', sentence: sentence('Added {name}.', {name: {kind: 'name', value: 'a'}})}, + {id: 'remove', tone: 'remove', sentence: sentence('Removed {name}.', {name: {kind: 'name', value: 'b'}})}, + {id: 'neutral', tone: 'neutral', sentence: sentence('Changed {name}.', {name: {kind: 'name', value: 'c'}})}, + ], + blocks: [{kind: 'reason', text: 'Cleanup'}], + }), + {[TEST_ACTOR_ID]: 'Hampus'}, + ), + ).toEqual({ + summary: 'Hampus did a test action.', + rows: ['+ Added a.', '- Removed b.', '~ Changed c.'], + blocks: [{kind: 'reason', text: 'Cleanup'}], + }); + }); +}); diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogPresentation.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogPresentation.ts new file mode 100644 index 000000000..52f9adaf4 --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogPresentation.ts @@ -0,0 +1,122 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import { + presentChannelCreate, + presentChannelDelete, + presentChannelOverwriteCreate, + presentChannelOverwriteDelete, + presentChannelOverwriteUpdate, + presentChannelUpdate, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogChannelPresentation'; +import { + presentEmojiCreate, + presentEmojiDelete, + presentEmojiUpdate, + presentMessageBulkDelete, + presentMessageDelete, + presentMessagePin, + presentMessageUnpin, + presentStickerCreate, + presentStickerDelete, + presentStickerUpdate, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessagePresentation'; +import {presentGuildUpdate} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogGuildPresentation'; +import { + presentInviteCreate, + presentInviteDelete, + presentInviteUpdate, + presentWebhookCreate, + presentWebhookDelete, + presentWebhookUpdate, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookPresentation'; +import { + presentBotAdd, + presentMemberBanAdd, + presentMemberBanRemove, + presentMemberDisconnect, + presentMemberKick, + presentMemberMove, + presentMemberPrune, + presentMemberRoleUpdate, + presentMemberUpdate, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogMemberPresentation'; +import type { + AuditLogBlock, + AuditLogDomainResult, + AuditLogEntryPresentation, + AuditLogPresentationContext, + AuditLogPresenter, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogPresentationTypes'; +import { + presentRoleCreate, + presentRoleDelete, + presentRoleUpdate, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogRolePresentation'; +import {UNKNOWN_ACTION_SUMMARY} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages'; +import {actorPlaceholder, decodeAuditReason} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogValues'; +import {AuditLogActionType} from '@fluxer/constants/src/AuditLogActionType'; +import type {GuildAuditLogEntryResponse} from '@fluxer/schema/src/domains/guild/GuildAuditLogSchemas'; + +const PRESENTERS = { + [AuditLogActionType.GUILD_UPDATE]: presentGuildUpdate, + [AuditLogActionType.CHANNEL_CREATE]: presentChannelCreate, + [AuditLogActionType.CHANNEL_UPDATE]: presentChannelUpdate, + [AuditLogActionType.CHANNEL_DELETE]: presentChannelDelete, + [AuditLogActionType.CHANNEL_OVERWRITE_CREATE]: presentChannelOverwriteCreate, + [AuditLogActionType.CHANNEL_OVERWRITE_UPDATE]: presentChannelOverwriteUpdate, + [AuditLogActionType.CHANNEL_OVERWRITE_DELETE]: presentChannelOverwriteDelete, + [AuditLogActionType.MEMBER_KICK]: presentMemberKick, + [AuditLogActionType.MEMBER_PRUNE]: presentMemberPrune, + [AuditLogActionType.MEMBER_BAN_ADD]: presentMemberBanAdd, + [AuditLogActionType.MEMBER_BAN_REMOVE]: presentMemberBanRemove, + [AuditLogActionType.MEMBER_UPDATE]: presentMemberUpdate, + [AuditLogActionType.MEMBER_ROLE_UPDATE]: presentMemberRoleUpdate, + [AuditLogActionType.MEMBER_MOVE]: presentMemberMove, + [AuditLogActionType.MEMBER_DISCONNECT]: presentMemberDisconnect, + [AuditLogActionType.BOT_ADD]: presentBotAdd, + [AuditLogActionType.ROLE_CREATE]: presentRoleCreate, + [AuditLogActionType.ROLE_UPDATE]: presentRoleUpdate, + [AuditLogActionType.ROLE_DELETE]: presentRoleDelete, + [AuditLogActionType.INVITE_CREATE]: presentInviteCreate, + [AuditLogActionType.INVITE_UPDATE]: presentInviteUpdate, + [AuditLogActionType.INVITE_DELETE]: presentInviteDelete, + [AuditLogActionType.WEBHOOK_CREATE]: presentWebhookCreate, + [AuditLogActionType.WEBHOOK_UPDATE]: presentWebhookUpdate, + [AuditLogActionType.WEBHOOK_DELETE]: presentWebhookDelete, + [AuditLogActionType.EMOJI_CREATE]: presentEmojiCreate, + [AuditLogActionType.EMOJI_UPDATE]: presentEmojiUpdate, + [AuditLogActionType.EMOJI_DELETE]: presentEmojiDelete, + [AuditLogActionType.STICKER_CREATE]: presentStickerCreate, + [AuditLogActionType.STICKER_UPDATE]: presentStickerUpdate, + [AuditLogActionType.STICKER_DELETE]: presentStickerDelete, + [AuditLogActionType.MESSAGE_DELETE]: presentMessageDelete, + [AuditLogActionType.MESSAGE_BULK_DELETE]: presentMessageBulkDelete, + [AuditLogActionType.MESSAGE_PIN]: presentMessagePin, + [AuditLogActionType.MESSAGE_UNPIN]: presentMessageUnpin, +} satisfies Record; + +function presentUnknownAction(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + return { + summary: {descriptor: UNKNOWN_ACTION_SUMMARY, values: {actor: actorPlaceholder(entry)}}, + rows: [], + blocks: [], + }; +} + +export function presentAuditLogEntry( + entry: GuildAuditLogEntryResponse, + context: AuditLogPresentationContext, +): AuditLogEntryPresentation { + const result = Object.hasOwn(PRESENTERS, entry.action_type) + ? PRESENTERS[entry.action_type](entry, context) + : presentUnknownAction(entry); + const reason = decodeAuditReason(entry.reason); + const blocks: Array = + reason === null ? result.blocks : [{kind: 'reason', text: reason}, ...result.blocks]; + return { + summary: result.summary, + rows: result.rows, + blocks, + expandable: result.rows.length > 0 || blocks.length > 0, + }; +} diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogPresentationTypes.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogPresentationTypes.ts new file mode 100644 index 000000000..88e2642e0 --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogPresentationTypes.ts @@ -0,0 +1,58 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import type {GuildAuditLogEntryResponse} from '@fluxer/schema/src/domains/guild/GuildAuditLogSchemas'; +import type {MessageDescriptor} from '@lingui/core'; + +export type AuditLogTone = 'add' | 'remove' | 'neutral'; + +export type AuditLogPlaceholder = + | {kind: 'user'; id: string} + | {kind: 'system'} + | {kind: 'channel'; id: string; recordedName: string | null; fallback: 'channel' | 'category'} + | {kind: 'role'; id: string; recordedName: string | null} + | {kind: 'name'; value: string} + | {kind: 'text'; value: string} + | {kind: 'emoji'; id: string | null; name: string} + | {kind: 'date'; timestamp: number} + | {kind: 'duration'; seconds: number} + | {kind: 'permissions'; flags: Array} + | {kind: 'color'; value: number} + | {kind: 'label'; descriptor: MessageDescriptor}; + +export interface AuditLogSentence { + descriptor: MessageDescriptor; + values: Record; +} + +export interface AuditLogDetailRow { + id: string; + tone: AuditLogTone; + sentence: AuditLogSentence; +} + +export interface AuditLogBlock { + kind: 'reason' | 'ban_reason'; + text: string; +} + +export interface AuditLogPresentationContext { + guildId: string; + getWebhookName: (id: string) => string | null; + getEmojiName: (id: string) => string | null; + getStickerName: (id: string) => string | null; +} + +export interface AuditLogDomainResult { + summary: AuditLogSentence; + rows: Array; + blocks: Array; +} + +export interface AuditLogEntryPresentation extends AuditLogDomainResult { + expandable: boolean; +} + +export type AuditLogPresenter = ( + entry: GuildAuditLogEntryResponse, + context: AuditLogPresentationContext, +) => AuditLogDomainResult; diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts new file mode 100644 index 000000000..8c18cdd87 --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts @@ -0,0 +1,174 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {msg} from '@lingui/core/macro'; + +export const ROLE_CREATE_SUMMARY = msg({ + message: '{actor} created the role {role}.', + comment: + 'Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app.', +}); +export const ROLE_MOVE_UP_IN_ROLE_LIST_SUMMARY = msg({ + message: '{actor} moved the role {role} up in the role list.', + comment: + 'Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app.', +}); +export const ROLE_MOVE_DOWN_IN_ROLE_LIST_SUMMARY = msg({ + message: '{actor} moved the role {role} down in the role list.', + comment: + 'Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app.', +}); +export const ROLE_SET_MEMBER_LIST_POSITION_SUMMARY = msg({ + message: '{actor} set a member list position for the role {role}.', + comment: + 'Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app.', +}); +export const ROLE_RESET_MEMBER_LIST_POSITION_SUMMARY = msg({ + message: '{actor} reset the member list position for the role {role}.', + comment: + 'Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app.', +}); +export const ROLE_MOVE_UP_IN_MEMBER_LIST_SUMMARY = msg({ + message: '{actor} moved the role {role} up in the member list.', + comment: + 'Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app.', +}); +export const ROLE_MOVE_DOWN_IN_MEMBER_LIST_SUMMARY = msg({ + message: '{actor} moved the role {role} down in the member list.', + comment: + 'Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app.', +}); +export const ROLE_RENAME_SUMMARY = msg({ + message: '{actor} renamed the role {oldName} to {newName}.', + comment: + 'Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app.', +}); +export const ROLE_UPDATE_SUMMARY = msg({ + message: '{actor} updated the role {role}.', + comment: + 'Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app.', +}); +export const ROLE_DELETE_SUMMARY = msg({ + message: '{actor} deleted the role {role}.', + comment: + 'Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app.', +}); +export const ROLE_NAME_CHANGE_ROW = msg({ + message: 'Changed the name from {oldName} to {newName}.', + comment: + 'Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them.', +}); +export const ROLE_PERMISSIONS_GRANT_ROW = msg({ + message: 'Granted {permissions}.', + comment: + 'Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions".', +}); +export const ROLE_PERMISSIONS_REVOKE_ROW = msg({ + message: 'Revoked {permissions}.', + comment: + 'Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions".', +}); +export const ROLE_COLOR_SET_ROW = msg({ + message: 'Set the role color to {color}.', + comment: + 'Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app.', +}); +export const ROLE_COLOR_REMOVE_ROW = msg({ + message: 'Removed the role color.', + comment: + 'Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app.', +}); +export const ROLE_COLOR_CHANGE_ROW = msg({ + message: 'Changed the role color from {oldColor} to {newColor}.', + comment: + 'Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app.', +}); +export const ROLE_HOIST_CREATE_ROW = msg({ + message: 'Showed members with this role in their own section in the member list.', + comment: + 'Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app.', +}); +export const ROLE_HOIST_START_ROW = msg({ + message: 'Started displaying members with this role separately.', + comment: + 'Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app.', +}); +export const ROLE_HOIST_STOP_ROW = msg({ + message: 'Stopped displaying members with this role separately.', + comment: + 'Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app.', +}); +export const ROLE_MENTIONABLE_ALLOW_ROW = msg({ + message: 'Allowed all members to mention this role.', + comment: + 'Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app.', +}); +export const ROLE_MENTIONABLE_DISALLOW_ROW = msg({ + message: 'Limited mentions of this role to members with permission to mention any role.', + comment: + 'Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app.', +}); +export const ROLE_EMOJI_SET_ROW = msg({ + message: 'Set the role icon to {emoji}.', + comment: + 'Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app.', +}); +export const ROLE_EMOJI_CHANGE_ROW = msg({ + message: 'Changed the role icon from {oldEmoji} to {newEmoji}.', + comment: + 'Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app.', +}); +export const ROLE_EMOJI_REMOVE_ROW = msg({ + message: 'Removed the role icon.', + comment: + 'Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app.', +}); +export const ROLE_ICON_SET_ROW = msg({ + message: 'Set a custom role icon.', + comment: + 'Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app.', +}); +export const ROLE_ICON_CHANGE_ROW = msg({ + message: 'Changed the custom role icon.', + comment: + 'Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app.', +}); +export const ROLE_ICON_REMOVE_ROW = msg({ + message: 'Removed the custom role icon.', + comment: + 'Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app.', +}); +export const ROLE_POSITION_UP_ROW = msg({ + message: 'Moved the role up in the role list.', + comment: + 'Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app.', +}); +export const ROLE_POSITION_DOWN_ROW = msg({ + message: 'Moved the role down in the role list.', + comment: + 'Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app.', +}); +export const ROLE_HOIST_POSITION_SET_ROW = msg({ + message: 'Set a member list position for the role.', + comment: + 'Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app.', +}); +export const ROLE_HOIST_POSITION_RESET_ROW = msg({ + message: 'Reset the member list position for the role.', + comment: + 'Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app.', +}); +export const ROLE_HOIST_POSITION_UP_ROW = msg({ + message: 'Moved the role up in the member list.', + comment: + 'Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app.', +}); +export const ROLE_HOIST_POSITION_DOWN_ROW = msg({ + message: 'Moved the role down in the member list.', + comment: + 'Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app.', +}); +export const ROLE_DELETED_PERMISSIONS_ROW = msg({ + message: 'The role granted {permissions}.', + comment: + 'Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app.', +}); diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogRolePresentation.test.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogRolePresentation.test.ts new file mode 100644 index 000000000..6493d6afb --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogRolePresentation.test.ts @@ -0,0 +1,649 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {presentAuditLogEntry} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogPresentation'; +import { + presentRoleCreate, + presentRoleDelete, + presentRoleUpdate, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogRolePresentation'; +import { + fakeContext, + makeEntry, + resultToText, + TEST_ACTOR_ID, + TEST_GUILD_ID, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogTestUtils'; +import {AuditLogActionType} from '@fluxer/constants/src/AuditLogActionType'; +import {DEFAULT_PERMISSIONS, Permissions} from '@fluxer/constants/src/ChannelConstants'; +import {describe, expect, it, vi} from 'vitest'; + +vi.mock('@lingui/core/macro', () => { + const descriptor = (value: unknown): unknown => (typeof value === 'string' ? {message: value} : value); + return {msg: descriptor, t: descriptor, plural: () => '', select: () => '', selectOrdinal: () => ''}; +}); + +vi.mock('@app/features/app/config/Config', () => ({ + default: { + PUBLIC_BUILD_VERSION: 'test', + PUBLIC_RELEASE_CHANNEL: 'canary', + PUBLIC_BOOTSTRAP_API_ENDPOINT: 'https://example.invalid', + PUBLIC_BOOTSTRAP_API_PUBLIC_ENDPOINT: 'https://example.invalid', + }, +})); + +type EntryFixture = Parameters[0]; +type ChangesFixture = NonNullable; + +const ROLE_ID = '1400000000000000200'; +const USER_NAMES = {[TEST_ACTOR_ID]: 'Hampus'}; +const ORANGE = 0xe67e22; +const BLUE = 0x3498db; +const UNKNOWN_PERMISSION_BIT = 1n << 19n; + +const APP_CREATE_SNAPSHOT: Record = { + role_id: ROLE_ID, + name: 'New role', + permissions: DEFAULT_PERMISSIONS.toString(), + position: 1, + hoist_position: null, + color: 0, + icon_hash: null, + unicode_emoji: null, + hoist: false, + mentionable: false, +}; + +const DELETE_SNAPSHOT: Record = { + role_id: ROLE_ID, + name: 'Mods', + permissions: (Permissions.KICK_MEMBERS | Permissions.BAN_MEMBERS | Permissions.MANAGE_MESSAGES).toString(), + position: 3, + hoist_position: null, + color: ORANGE, + icon_hash: null, + unicode_emoji: '🔥', + hoist: true, + mentionable: false, +}; + +function present(fixture: EntryFixture) { + const presentation = presentAuditLogEntry(makeEntry(fixture), fakeContext()); + return {...resultToText(presentation, USER_NAMES), expandable: presentation.expandable}; +} + +function createdRole(snapshot: Record, fixture: Partial = {}) { + return present({ + action_type: AuditLogActionType.ROLE_CREATE, + target_id: ROLE_ID, + changes: Object.entries({...APP_CREATE_SNAPSHOT, ...snapshot}).map(([key, value]) => ({key, new_value: value})), + ...fixture, + }); +} + +function updatedRole(changes: ChangesFixture, fixture: Partial = {}) { + return present({ + action_type: AuditLogActionType.ROLE_UPDATE, + target_id: ROLE_ID, + options: {role_name: 'Mods'}, + changes, + ...fixture, + }); +} + +function deletedRole(snapshot: Record, fixture: Partial = {}) { + return present({ + action_type: AuditLogActionType.ROLE_DELETE, + target_id: ROLE_ID, + changes: Object.entries({...DELETE_SNAPSHOT, ...snapshot}).map(([key, value]) => ({key, old_value: value})), + ...fixture, + }); +} + +const GENERIC_UPDATE_WITHOUT_ROWS = { + summary: 'Hampus updated the role @Mods.', + rows: [], + blocks: [], + expandable: false, +}; + +describe('presentRoleCreate', () => { + it('shows one Granted row for a role created from the app', () => { + expect(createdRole({})).toEqual({ + summary: 'Hampus created the role @New role.', + rows: [ + '+ Granted Create invite links, Add reactions, Stream video, View channel, Send messages, Embed links, Attach files, and 8 more permissions.', + ], + blocks: [], + expandable: true, + }); + }); + + it('shows nothing to expand for a role created without permissions', () => { + expect(createdRole({permissions: '0'})).toEqual({ + summary: 'Hampus created the role @New role.', + rows: [], + blocks: [], + expandable: false, + }); + }); + + it.each([ + {label: 'a color', snapshot: {color: ORANGE}, row: '~ Set the role color to #E67E22.'}, + { + label: 'members displayed separately', + snapshot: {hoist: true}, + row: '+ Showed members with this role in their own section in the member list.', + }, + {label: 'mentions allowed', snapshot: {mentionable: true}, row: '+ Allowed all members to mention this role.'}, + {label: 'an emoji icon', snapshot: {unicode_emoji: '🔥'}, row: '+ Set the role icon to 🔥.'}, + {label: 'a custom icon', snapshot: {icon_hash: 'a1b2c3'}, row: '+ Set a custom role icon.'}, + ])('shows a row for $label', ({snapshot, row}) => { + expect(createdRole({permissions: '0', ...snapshot})).toEqual({ + summary: 'Hampus created the role @New role.', + rows: [row], + blocks: [], + expandable: true, + }); + }); + + it('orders every row of a fully customized role', () => { + expect( + createdRole({ + name: 'Moderators', + permissions: (Permissions.MANAGE_MESSAGES | Permissions.SEND_MESSAGES).toString(), + color: BLUE, + icon_hash: 'a1b2c3', + unicode_emoji: '🛡️', + hoist: true, + mentionable: true, + }), + ).toEqual({ + summary: 'Hampus created the role @Moderators.', + rows: [ + '+ Granted Send messages and Manage messages.', + '~ Set the role color to #3498DB.', + '+ Showed members with this role in their own section in the member list.', + '+ Allowed all members to mention this role.', + '+ Set the role icon to 🛡️.', + '+ Set a custom role icon.', + ], + blocks: [], + expandable: true, + }); + }); + + it('reads gateway string and number forms', () => { + expect( + createdRole({ + permissions: Number(Permissions.SEND_MESSAGES), + color: String(ORANGE), + hoist: 'true', + mentionable: 'false', + }), + ).toEqual({ + summary: 'Hampus created the role @New role.', + rows: [ + '+ Granted Send messages.', + '~ Set the role color to #E67E22.', + '+ Showed members with this role in their own section in the member list.', + ], + blocks: [], + expandable: true, + }); + }); + + it.each([ + {permissions: '12abc'}, + {permissions: '-4'}, + {permissions: String(UNKNOWN_PERMISSION_BIT)}, + {color: -1}, + {color: 1.5}, + {color: 0x1000000}, + {color: 'orange'}, + {hoist: 'yes'}, + {mentionable: 1}, + {unicode_emoji: ' '}, + {icon_hash: 42}, + {icon_hash: ''}, + ])('omits the row for %o', (snapshot) => { + expect(createdRole({permissions: '0', ...snapshot}).rows).toEqual([]); + }); + + it('adds the decoded Reason block', () => { + expect(createdRole({permissions: '0'}, {reason: 'Event%20staff'})).toEqual({ + summary: 'Hampus created the role @New role.', + rows: [], + blocks: [{kind: 'reason', text: 'Event staff'}], + expandable: true, + }); + }); + + it('leaves the recorded name empty when the name does not read', () => { + expect(createdRole({name: ' '}).summary).toBe(`Hampus created the role @${ROLE_ID}.`); + expect( + presentRoleCreate(makeEntry({action_type: AuditLogActionType.ROLE_CREATE, target_id: 'role', changes: []})) + .summary.values.role, + ).toEqual({kind: 'role', id: '', recordedName: null}); + }); +}); + +describe('presentRoleUpdate', () => { + it.each([ + {direction: 'up', oldValue: 2, newValue: 5, summary: 'Hampus moved the role @Mods up in the role list.'}, + {direction: 'down', oldValue: 5, newValue: 2, summary: 'Hampus moved the role @Mods down in the role list.'}, + ])('summarizes a role moved $direction in the role list', ({oldValue, newValue, summary}) => { + expect(updatedRole([{key: 'position', old_value: oldValue, new_value: newValue}])).toEqual({ + summary, + rows: [], + blocks: [], + expandable: false, + }); + }); + + it('uses the generic summary for a position that did not change', () => { + expect(updatedRole([{key: 'position', old_value: 3, new_value: 3}])).toEqual(GENERIC_UPDATE_WITHOUT_ROWS); + }); + + it.each([ + {label: 'set', oldValue: null, newValue: 4, summary: 'Hampus set a member list position for the role @Mods.'}, + {label: 'reset', oldValue: 4, newValue: null, summary: 'Hampus reset the member list position for the role @Mods.'}, + {label: 'moved up', oldValue: 2, newValue: 5, summary: 'Hampus moved the role @Mods up in the member list.'}, + {label: 'moved down', oldValue: 5, newValue: 2, summary: 'Hampus moved the role @Mods down in the member list.'}, + ])('summarizes a member list position that was $label', ({oldValue, newValue, summary}) => { + expect(updatedRole([{key: 'hoist_position', old_value: oldValue, new_value: newValue}])).toEqual({ + summary, + rows: [], + blocks: [], + expandable: false, + }); + }); + + it.each([ + {oldValue: 3, newValue: 3}, + {oldValue: null, newValue: null}, + {oldValue: 'top', newValue: 3}, + {oldValue: 3, newValue: 'bottom'}, + ])('ignores a member list position from $oldValue to $newValue', ({oldValue, newValue}) => { + expect(updatedRole([{key: 'hoist_position', old_value: oldValue, new_value: newValue}])).toEqual( + GENERIC_UPDATE_WITHOUT_ROWS, + ); + }); + + it('summarizes a rename with no rows', () => { + expect( + updatedRole([{key: 'name', old_value: 'Mods', new_value: 'Moderators'}], {options: {role_name: 'Moderators'}}), + ).toEqual({ + summary: 'Hampus renamed the role Mods to Moderators.', + rows: [], + blocks: [], + expandable: false, + }); + }); + + it('uses the generic summary for an entry with no changes', () => { + expect(updatedRole([])).toEqual(GENERIC_UPDATE_WITHOUT_ROWS); + expect( + present({action_type: AuditLogActionType.ROLE_UPDATE, target_id: ROLE_ID, options: {role_name: 'Mods'}}), + ).toEqual(GENERIC_UPDATE_WITHOUT_ROWS); + }); + + it.each([ + { + label: 'a granted permission', + previous: Permissions.VIEW_CHANNEL, + next: Permissions.VIEW_CHANNEL | Permissions.SEND_MESSAGES, + diff: {added: ['SEND_MESSAGES'], removed: []}, + rows: ['+ Granted Send messages.'], + }, + { + label: 'a revoked permission', + previous: Permissions.VIEW_CHANNEL | Permissions.SEND_MESSAGES, + next: Permissions.VIEW_CHANNEL, + diff: {added: [], removed: ['SEND_MESSAGES']}, + rows: ['- Revoked Send messages.'], + }, + { + label: 'granted and revoked permissions', + previous: Permissions.KICK_MEMBERS, + next: Permissions.BAN_MEMBERS | Permissions.MANAGE_MESSAGES, + diff: {added: ['BAN_MEMBERS', 'MANAGE_MESSAGES'], removed: ['KICK_MEMBERS']}, + rows: ['+ Granted Ban members and Manage messages.', '- Revoked Kick members.'], + }, + ])('shows $label from the permissions pair and not permissions_diff', ({previous, next, diff, rows}) => { + expect( + updatedRole([ + {key: 'permissions', old_value: previous.toString(), new_value: next.toString()}, + {key: 'permissions_diff', new_value: diff}, + ]), + ).toEqual({summary: 'Hampus updated the role @Mods.', rows, blocks: [], expandable: true}); + }); + + it('reads legacy permissions_diff names when the permissions pair is absent', () => { + expect( + updatedRole([ + { + key: 'permissions_diff', + new_value: {added: ['MANAGE_MESSAGES', 'SEND_MESSAGES', 'NOT_A_PERMISSION'], removed: ['KICK_MEMBERS']}, + }, + ]), + ).toEqual({ + summary: 'Hampus updated the role @Mods.', + rows: ['+ Granted Send messages and Manage messages.', '- Revoked Kick members.'], + blocks: [], + expandable: true, + }); + }); + + it('does not fall back to permissions_diff when the permissions pair does not read', () => { + expect( + updatedRole([ + {key: 'permissions', old_value: 'abc', new_value: Permissions.VIEW_CHANNEL.toString()}, + {key: 'permissions_diff', new_value: {added: ['VIEW_CHANNEL'], removed: []}}, + ]), + ).toEqual(GENERIC_UPDATE_WITHOUT_ROWS); + }); + + it('shows nothing for permissions that differ only in bits the app does not know', () => { + expect( + updatedRole([ + { + key: 'permissions', + old_value: Permissions.VIEW_CHANNEL.toString(), + new_value: (Permissions.VIEW_CHANNEL | UNKNOWN_PERMISSION_BIT).toString(), + }, + ]), + ).toEqual(GENERIC_UPDATE_WITHOUT_ROWS); + }); + + it.each([ + {label: 'set', oldValue: 0, newValue: ORANGE, row: '+ Set the role color to #E67E22.'}, + {label: 'removed', oldValue: ORANGE, newValue: 0, row: '- Removed the role color.'}, + {label: 'changed', oldValue: ORANGE, newValue: BLUE, row: '~ Changed the role color from #E67E22 to #3498DB.'}, + ])('shows a role color that was $label', ({oldValue, newValue, row}) => { + expect(updatedRole([{key: 'color', old_value: oldValue, new_value: newValue}])).toEqual({ + summary: 'Hampus updated the role @Mods.', + rows: [row], + blocks: [], + expandable: true, + }); + }); + + it.each([ + {key: 'hoist', oldValue: false, newValue: true, row: '+ Started displaying members with this role separately.'}, + {key: 'hoist', oldValue: true, newValue: false, row: '- Stopped displaying members with this role separately.'}, + {key: 'mentionable', oldValue: false, newValue: true, row: '+ Allowed all members to mention this role.'}, + { + key: 'mentionable', + oldValue: true, + newValue: false, + row: '- Limited mentions of this role to members with permission to mention any role.', + }, + {key: 'unicode_emoji', oldValue: null, newValue: '🔥', row: '+ Set the role icon to 🔥.'}, + {key: 'unicode_emoji', oldValue: '🔥', newValue: '⭐', row: '~ Changed the role icon from 🔥 to ⭐.'}, + {key: 'unicode_emoji', oldValue: '🔥', newValue: null, row: '- Removed the role icon.'}, + {key: 'icon_hash', oldValue: null, newValue: 'a1b2c3', row: '+ Set a custom role icon.'}, + {key: 'icon_hash', oldValue: 'a1b2c3', newValue: 'd4e5f6', row: '~ Changed the custom role icon.'}, + {key: 'icon_hash', oldValue: 'a1b2c3', newValue: null, row: '- Removed the custom role icon.'}, + ])('shows $key from $oldValue to $newValue', ({key, oldValue, newValue, row}) => { + expect(updatedRole([{key, old_value: oldValue, new_value: newValue}])).toEqual({ + summary: 'Hampus updated the role @Mods.', + rows: [row], + blocks: [], + expandable: true, + }); + }); + + it('treats blank icons as no icon', () => { + expect( + updatedRole([ + {key: 'unicode_emoji', old_value: ' ', new_value: null}, + {key: 'icon_hash', old_value: null, new_value: ''}, + ]), + ).toEqual(GENERIC_UPDATE_WITHOUT_ROWS); + }); + + it.each([ + {change: {key: 'position', old_value: 2, new_value: 5}, row: '~ Moved the role up in the role list.'}, + {change: {key: 'position', old_value: 5, new_value: 2}, row: '~ Moved the role down in the role list.'}, + {change: {key: 'hoist_position', old_value: null, new_value: 4}, row: '~ Set a member list position for the role.'}, + { + change: {key: 'hoist_position', old_value: 4, new_value: null}, + row: '~ Reset the member list position for the role.', + }, + {change: {key: 'hoist_position', old_value: 2, new_value: 5}, row: '~ Moved the role up in the member list.'}, + {change: {key: 'hoist_position', old_value: 5, new_value: 2}, row: '~ Moved the role down in the member list.'}, + ])('shows $change.key as a row when it comes with another change', ({change, row}) => { + expect(updatedRole([change, {key: 'color', old_value: 0, new_value: ORANGE}])).toEqual({ + summary: 'Hampus updated the role @Mods.', + rows: ['+ Set the role color to #E67E22.', row], + blocks: [], + expandable: true, + }); + }); + + it('lists every change in a fixed order under the generic summary', () => { + expect( + updatedRole( + [ + {key: 'hoist_position', old_value: null, new_value: 3}, + {key: 'position', old_value: 2, new_value: 4}, + {key: 'icon_hash', old_value: 'a1b2c3', new_value: null}, + {key: 'unicode_emoji', old_value: null, new_value: '🔥'}, + {key: 'mentionable', old_value: true, new_value: false}, + {key: 'hoist', old_value: false, new_value: true}, + {key: 'color', old_value: ORANGE, new_value: BLUE}, + {key: 'permissions_diff', new_value: {added: ['MANAGE_MESSAGES'], removed: ['KICK_MEMBERS']}}, + { + key: 'permissions', + old_value: Permissions.KICK_MEMBERS.toString(), + new_value: Permissions.MANAGE_MESSAGES.toString(), + }, + {key: 'name', old_value: 'Mods', new_value: 'Moderators'}, + {key: 'role_id', new_value: ROLE_ID}, + ], + {options: {role_name: 'Moderators'}}, + ), + ).toEqual({ + summary: 'Hampus updated the role @Moderators.', + rows: [ + '~ Changed the name from Mods to Moderators.', + '+ Granted Manage messages.', + '- Revoked Kick members.', + '~ Changed the role color from #E67E22 to #3498DB.', + '+ Started displaying members with this role separately.', + '- Limited mentions of this role to members with permission to mention any role.', + '+ Set the role icon to 🔥.', + '- Removed the custom role icon.', + '~ Moved the role up in the role list.', + '~ Set a member list position for the role.', + ], + blocks: [], + expandable: true, + }); + }); + + it('names the role by its new name before the recorded role name', () => { + expect( + updatedRole( + [ + {key: 'name', old_value: 'Mods', new_value: 'Moderators'}, + {key: 'hoist', old_value: false, new_value: true}, + ], + {options: {role_name: 'Staff'}}, + ), + ).toEqual({ + summary: 'Hampus updated the role @Moderators.', + rows: ['~ Changed the name from Mods to Moderators.', '+ Started displaying members with this role separately.'], + blocks: [], + expandable: true, + }); + }); + + it('shows @everyone for the default role', () => { + const entry = makeEntry({ + action_type: AuditLogActionType.ROLE_UPDATE, + target_id: TEST_GUILD_ID, + options: {role_name: '@everyone'}, + changes: [ + { + key: 'permissions', + old_value: Permissions.VIEW_CHANNEL.toString(), + new_value: (Permissions.VIEW_CHANNEL | Permissions.SEND_MESSAGES).toString(), + }, + ], + }); + expect(presentRoleUpdate(entry).summary.values.role).toEqual({ + kind: 'role', + id: TEST_GUILD_ID, + recordedName: '@everyone', + }); + expect(present({...entry, action_type: AuditLogActionType.ROLE_UPDATE})).toEqual({ + summary: 'Hampus updated the role @everyone.', + rows: ['+ Granted Send messages.'], + blocks: [], + expandable: true, + }); + }); + + it('names a deleted role by the recorded role name', () => { + expect(updatedRole([{key: 'position', old_value: 1, new_value: 3}], {options: {role_name: 'Old staff'}})).toEqual({ + summary: 'Hampus moved the role @Old staff up in the role list.', + rows: [], + blocks: [], + expandable: false, + }); + expect( + presentRoleUpdate( + makeEntry({ + action_type: AuditLogActionType.ROLE_UPDATE, + target_id: ROLE_ID, + changes: [{key: 'position', old_value: 1, new_value: 3}], + }), + ).summary.values.role, + ).toEqual({kind: 'role', id: ROLE_ID, recordedName: null}); + }); + + it('reads gateway string forms', () => { + expect( + updatedRole([ + {key: 'color', old_value: '0', new_value: String(ORANGE)}, + {key: 'hoist', old_value: 'false', new_value: 'true'}, + {key: 'position', old_value: '4', new_value: '2'}, + ]), + ).toEqual({ + summary: 'Hampus updated the role @Mods.', + rows: [ + '+ Set the role color to #E67E22.', + '+ Started displaying members with this role separately.', + '~ Moved the role down in the role list.', + ], + blocks: [], + expandable: true, + }); + }); + + it('omits changes whose values do not read', () => { + expect( + updatedRole( + [ + {key: 'name', old_value: 42, new_value: 'Mods'}, + {key: 'permissions', old_value: '-1', new_value: Permissions.VIEW_CHANNEL.toString()}, + {key: 'color', old_value: 'red', new_value: ORANGE}, + {key: 'hoist', old_value: 'yes', new_value: true}, + {key: 'mentionable', new_value: true}, + {key: 'unicode_emoji', old_value: 5, new_value: '🔥'}, + {key: 'icon_hash', old_value: null, new_value: {}}, + {key: 'position', old_value: null, new_value: 3}, + {key: 'hoist_position', old_value: 'top', new_value: 3}, + ], + {options: {role_name: 'Staff'}}, + ), + ).toEqual(GENERIC_UPDATE_WITHOUT_ROWS); + }); + + it('adds the decoded Reason block to a summary-only entry', () => { + expect(updatedRole([{key: 'position', old_value: 2, new_value: 5}], {reason: 'Reorder%20pass'})).toEqual({ + summary: 'Hampus moved the role @Mods up in the role list.', + rows: [], + blocks: [{kind: 'reason', text: 'Reorder pass'}], + expandable: true, + }); + }); + + it('names the system as the actor', () => { + expect(updatedRole([{key: 'position', old_value: 2, new_value: 5}], {user_id: '0'}).summary).toBe( + 'System moved the role @Mods up in the role list.', + ); + }); +}); + +describe('presentRoleDelete', () => { + it('lists the permissions the deleted role granted', () => { + expect(deletedRole({})).toEqual({ + summary: 'Hampus deleted the role @Mods.', + rows: ['- The role granted Kick members, Ban members, and Manage messages.'], + blocks: [], + expandable: true, + }); + }); + + it('shows nothing to expand for a deleted role without permissions', () => { + expect(deletedRole({permissions: '0'})).toEqual({ + summary: 'Hampus deleted the role @Mods.', + rows: [], + blocks: [], + expandable: false, + }); + }); + + it.each([String(UNKNOWN_PERMISSION_BIT), 'abc', null])('shows no row for the permissions %o', (permissions) => { + expect(deletedRole({permissions}).rows).toEqual([]); + }); + + it('caps a long permission list', () => { + expect(deletedRole({permissions: DEFAULT_PERMISSIONS.toString()}).rows).toEqual([ + '- The role granted Create invite links, Add reactions, Stream video, View channel, Send messages, Embed links, Attach files, and 8 more permissions.', + ]); + }); + + it('adds the decoded Reason block', () => { + expect(deletedRole({permissions: '0'}, {reason: 'No%20longer%20needed'})).toEqual({ + summary: 'Hampus deleted the role @Mods.', + rows: [], + blocks: [{kind: 'reason', text: 'No longer needed'}], + expandable: true, + }); + }); + + it('leaves the recorded name empty when the name does not read', () => { + expect(deletedRole({name: null}).summary).toBe(`Hampus deleted the role @${ROLE_ID}.`); + }); +}); + +describe('role presenters with junk entries', () => { + it.each([ + {presenter: presentRoleCreate, actionType: AuditLogActionType.ROLE_CREATE}, + {presenter: presentRoleUpdate, actionType: AuditLogActionType.ROLE_UPDATE}, + {presenter: presentRoleDelete, actionType: AuditLogActionType.ROLE_DELETE}, + ])('never throws and shows no rows for action type $actionType', ({presenter, actionType}) => { + const entry = makeEntry({ + action_type: actionType, + target_id: 'role', + user_id: null, + options: {role_name: 7}, + changes: [ + {key: 'name'}, + {key: 'permissions', old_value: [], new_value: {added: 1}}, + {key: 'permissions_diff', new_value: {added: 'SEND_MESSAGES', removed: [1]}}, + {key: 'color', old_value: Number.NaN, new_value: Number.POSITIVE_INFINITY}, + {key: 'hoist', old_value: null, new_value: null}, + {key: 'unicode_emoji', old_value: ['🔥'], new_value: ['⭐']}, + {key: 'position', old_value: {}, new_value: []}, + ], + }); + const result = presenter(entry); + expect(() => resultToText(result)).not.toThrow(); + expect(result.rows).toEqual([]); + expect(result.summary.values.role).toEqual({kind: 'role', id: '', recordedName: null}); + }); +}); diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogRolePresentation.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogRolePresentation.ts new file mode 100644 index 000000000..817304a25 --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogRolePresentation.ts @@ -0,0 +1,383 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import type { + AuditLogDetailRow, + AuditLogDomainResult, + AuditLogPlaceholder, + AuditLogSentence, + AuditLogTone, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogPresentationTypes'; +import { + ROLE_COLOR_CHANGE_ROW, + ROLE_COLOR_REMOVE_ROW, + ROLE_COLOR_SET_ROW, + ROLE_CREATE_SUMMARY, + ROLE_DELETE_SUMMARY, + ROLE_DELETED_PERMISSIONS_ROW, + ROLE_EMOJI_CHANGE_ROW, + ROLE_EMOJI_REMOVE_ROW, + ROLE_EMOJI_SET_ROW, + ROLE_HOIST_CREATE_ROW, + ROLE_HOIST_POSITION_DOWN_ROW, + ROLE_HOIST_POSITION_RESET_ROW, + ROLE_HOIST_POSITION_SET_ROW, + ROLE_HOIST_POSITION_UP_ROW, + ROLE_HOIST_START_ROW, + ROLE_HOIST_STOP_ROW, + ROLE_ICON_CHANGE_ROW, + ROLE_ICON_REMOVE_ROW, + ROLE_ICON_SET_ROW, + ROLE_MENTIONABLE_ALLOW_ROW, + ROLE_MENTIONABLE_DISALLOW_ROW, + ROLE_MOVE_DOWN_IN_MEMBER_LIST_SUMMARY, + ROLE_MOVE_DOWN_IN_ROLE_LIST_SUMMARY, + ROLE_MOVE_UP_IN_MEMBER_LIST_SUMMARY, + ROLE_MOVE_UP_IN_ROLE_LIST_SUMMARY, + ROLE_NAME_CHANGE_ROW, + ROLE_PERMISSIONS_GRANT_ROW, + ROLE_PERMISSIONS_REVOKE_ROW, + ROLE_POSITION_DOWN_ROW, + ROLE_POSITION_UP_ROW, + ROLE_RENAME_SUMMARY, + ROLE_RESET_MEMBER_LIST_POSITION_SUMMARY, + ROLE_SET_MEMBER_LIST_POSITION_SUMMARY, + ROLE_UPDATE_SUMMARY, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages'; +import { + actorPlaceholder, + diffBitfields, + permissionFlagsIn, + readBitfield, + readBoolean, + readChange, + readNumber, + readOption, + readSnowflake, + readString, + readStringArray, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogValues'; +import {Permissions} from '@fluxer/constants/src/ChannelConstants'; +import type {GuildAuditLogEntryResponse} from '@fluxer/schema/src/domains/guild/GuildAuditLogSchemas'; +import type {MessageDescriptor} from '@lingui/core'; + +type ListDirection = 'up' | 'down'; +type MemberListPositionChange = ListDirection | 'set' | 'reset'; + +interface ValueChange { + previous: T; + next: T; +} + +interface PermissionChanges { + added: Array; + removed: Array; +} + +const MAX_ROLE_COLOR = 0xffffff; +const PERMISSION_FLAGS_BY_NAME: ReadonlyMap = new Map(Object.entries(Permissions)); + +const ROLE_LIST_MOVE_SUMMARIES: Record = { + up: ROLE_MOVE_UP_IN_ROLE_LIST_SUMMARY, + down: ROLE_MOVE_DOWN_IN_ROLE_LIST_SUMMARY, +}; +const ROLE_LIST_MOVE_ROWS: Record = { + up: ROLE_POSITION_UP_ROW, + down: ROLE_POSITION_DOWN_ROW, +}; +const MEMBER_LIST_POSITION_SUMMARIES: Record = { + set: ROLE_SET_MEMBER_LIST_POSITION_SUMMARY, + reset: ROLE_RESET_MEMBER_LIST_POSITION_SUMMARY, + up: ROLE_MOVE_UP_IN_MEMBER_LIST_SUMMARY, + down: ROLE_MOVE_DOWN_IN_MEMBER_LIST_SUMMARY, +}; +const MEMBER_LIST_POSITION_ROWS: Record = { + set: ROLE_HOIST_POSITION_SET_ROW, + reset: ROLE_HOIST_POSITION_RESET_ROW, + up: ROLE_HOIST_POSITION_UP_ROW, + down: ROLE_HOIST_POSITION_DOWN_ROW, +}; + +function row( + id: string, + tone: AuditLogTone, + descriptor: MessageDescriptor, + values: AuditLogSentence['values'] = {}, +): AuditLogDetailRow { + return {id, tone, sentence: {descriptor, values}}; +} + +function summaryOnly(descriptor: MessageDescriptor, values: AuditLogSentence['values']): AuditLogDomainResult { + return {summary: {descriptor, values}, rows: [], blocks: []}; +} + +function rolePlaceholder(entry: GuildAuditLogEntryResponse, recordedName: string | null): AuditLogPlaceholder { + return {kind: 'role', id: readSnowflake(entry.target_id) ?? '', recordedName}; +} + +function nameValue(value: string): AuditLogPlaceholder { + return {kind: 'name', value}; +} + +function colorValue(value: number): AuditLogPlaceholder { + return {kind: 'color', value}; +} + +function permissionsValue(flags: Array): AuditLogPlaceholder { + return {kind: 'permissions', flags}; +} + +function readNewValue(entry: GuildAuditLogEntryResponse, key: string): unknown { + return readChange(entry, key)?.newValue ?? null; +} + +function readOldValue(entry: GuildAuditLogEntryResponse, key: string): unknown { + return readChange(entry, key)?.oldValue ?? null; +} + +function readColor(value: unknown): number | null { + const color = readNumber(value); + return color !== null && Number.isInteger(color) && color >= 0 && color <= MAX_ROLE_COLOR ? color : null; +} + +function isNullableString(value: unknown): value is string | null { + return value === null || typeof value === 'string'; +} + +function permissionFlagsNamed(value: unknown): Array { + const names = readStringArray(value) ?? []; + return permissionFlagsIn(names.reduce((mask, name) => mask | (PERMISSION_FLAGS_BY_NAME.get(name) ?? 0n), 0n)); +} + +function readNameChange(entry: GuildAuditLogEntryResponse): ValueChange | null { + const change = readChange(entry, 'name'); + if (!change) return null; + const previous = readString(change.oldValue); + const next = readString(change.newValue); + return previous !== null && next !== null && previous !== next ? {previous, next} : null; +} + +function readPermissionsDiffChanges(entry: GuildAuditLogEntryResponse): PermissionChanges | null { + const value = readNewValue(entry, 'permissions_diff'); + if (typeof value !== 'object' || value === null) return null; + return { + added: permissionFlagsNamed('added' in value ? value.added : null), + removed: permissionFlagsNamed('removed' in value ? value.removed : null), + }; +} + +function diffPermissionValues(oldValue: unknown, newValue: unknown): PermissionChanges | null { + const previous = readBitfield(oldValue); + const next = readBitfield(newValue); + return previous !== null && next !== null ? diffBitfields(previous, next) : null; +} + +function readPermissionChanges(entry: GuildAuditLogEntryResponse): PermissionChanges | null { + const change = readChange(entry, 'permissions'); + const changes = change ? diffPermissionValues(change.oldValue, change.newValue) : readPermissionsDiffChanges(entry); + return changes !== null && (changes.added.length > 0 || changes.removed.length > 0) ? changes : null; +} + +function readColorChange(entry: GuildAuditLogEntryResponse): ValueChange | null { + const change = readChange(entry, 'color'); + if (!change) return null; + const previous = readColor(change.oldValue); + const next = readColor(change.newValue); + return previous !== null && next !== null && previous !== next ? {previous, next} : null; +} + +function readToggleChange(entry: GuildAuditLogEntryResponse, key: string): boolean | null { + const change = readChange(entry, key); + if (!change) return null; + const previous = readBoolean(change.oldValue); + const next = readBoolean(change.newValue); + return previous !== null && next !== null && previous !== next ? next : null; +} + +function readOptionalTextChange(entry: GuildAuditLogEntryResponse, key: string): ValueChange | null { + const change = readChange(entry, key); + if (!change || !isNullableString(change.oldValue) || !isNullableString(change.newValue)) return null; + const previous = readString(change.oldValue); + const next = readString(change.newValue); + return previous !== next ? {previous, next} : null; +} + +function readRoleListMove(entry: GuildAuditLogEntryResponse): ListDirection | null { + const change = readChange(entry, 'position'); + if (!change) return null; + const previous = readNumber(change.oldValue); + const next = readNumber(change.newValue); + if (previous === null || next === null || previous === next) return null; + return next > previous ? 'up' : 'down'; +} + +function readMemberListPositionChange(entry: GuildAuditLogEntryResponse): MemberListPositionChange | null { + const change = readChange(entry, 'hoist_position'); + if (!change) return null; + const previous = readNumber(change.oldValue); + const next = readNumber(change.newValue); + if ((change.oldValue !== null && previous === null) || (change.newValue !== null && next === null)) return null; + if (previous === null) return next === null ? null : 'set'; + if (next === null) return 'reset'; + if (previous === next) return null; + return next > previous ? 'up' : 'down'; +} + +function colorRow({previous, next}: ValueChange): AuditLogDetailRow { + if (previous === 0) return row('color', 'add', ROLE_COLOR_SET_ROW, {color: colorValue(next)}); + if (next === 0) return row('color', 'remove', ROLE_COLOR_REMOVE_ROW); + return row('color', 'neutral', ROLE_COLOR_CHANGE_ROW, {oldColor: colorValue(previous), newColor: colorValue(next)}); +} + +function emojiRow({previous, next}: ValueChange): AuditLogDetailRow { + if (next === null) return row('unicode-emoji', 'remove', ROLE_EMOJI_REMOVE_ROW); + if (previous === null) return row('unicode-emoji', 'add', ROLE_EMOJI_SET_ROW, {emoji: nameValue(next)}); + return row('unicode-emoji', 'neutral', ROLE_EMOJI_CHANGE_ROW, { + oldEmoji: nameValue(previous), + newEmoji: nameValue(next), + }); +} + +function iconRow({previous, next}: ValueChange): AuditLogDetailRow { + if (next === null) return row('icon-hash', 'remove', ROLE_ICON_REMOVE_ROW); + if (previous === null) return row('icon-hash', 'add', ROLE_ICON_SET_ROW); + return row('icon-hash', 'neutral', ROLE_ICON_CHANGE_ROW); +} + +export function presentRoleCreate(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + const permissions = permissionFlagsIn(readBitfield(readNewValue(entry, 'permissions')) ?? 0n); + const color = readColor(readNewValue(entry, 'color')); + const emoji = readString(readNewValue(entry, 'unicode_emoji')); + const rows: Array = []; + if (permissions.length > 0) { + rows.push( + row('permissions-granted', 'add', ROLE_PERMISSIONS_GRANT_ROW, {permissions: permissionsValue(permissions)}), + ); + } + if (color !== null && color > 0) { + rows.push(row('color', 'neutral', ROLE_COLOR_SET_ROW, {color: colorValue(color)})); + } + if (readBoolean(readNewValue(entry, 'hoist')) === true) { + rows.push(row('hoist', 'add', ROLE_HOIST_CREATE_ROW)); + } + if (readBoolean(readNewValue(entry, 'mentionable')) === true) { + rows.push(row('mentionable', 'add', ROLE_MENTIONABLE_ALLOW_ROW)); + } + if (emoji !== null) { + rows.push(row('unicode-emoji', 'add', ROLE_EMOJI_SET_ROW, {emoji: nameValue(emoji)})); + } + if (readString(readNewValue(entry, 'icon_hash')) !== null) { + rows.push(row('icon-hash', 'add', ROLE_ICON_SET_ROW)); + } + return { + summary: { + descriptor: ROLE_CREATE_SUMMARY, + values: { + actor: actorPlaceholder(entry), + role: rolePlaceholder(entry, readString(readNewValue(entry, 'name'))), + }, + }, + rows, + blocks: [], + }; +} + +export function presentRoleUpdate(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + const name = readNameChange(entry); + const permissions = readPermissionChanges(entry); + const color = readColorChange(entry); + const hoist = readToggleChange(entry, 'hoist'); + const mentionable = readToggleChange(entry, 'mentionable'); + const emoji = readOptionalTextChange(entry, 'unicode_emoji'); + const icon = readOptionalTextChange(entry, 'icon_hash'); + const roleListMove = readRoleListMove(entry); + const memberListPosition = readMemberListPositionChange(entry); + const actor = actorPlaceholder(entry); + const role = rolePlaceholder( + entry, + readString(readNewValue(entry, 'name')) ?? readString(readOption(entry, 'role_name')), + ); + const changeCount = [ + name, + permissions, + color, + hoist, + mentionable, + emoji, + icon, + roleListMove, + memberListPosition, + ].filter((change) => change !== null).length; + + if (changeCount === 1 && roleListMove !== null) { + return summaryOnly(ROLE_LIST_MOVE_SUMMARIES[roleListMove], {actor, role}); + } + if (changeCount === 1 && memberListPosition !== null) { + return summaryOnly(MEMBER_LIST_POSITION_SUMMARIES[memberListPosition], {actor, role}); + } + if (changeCount === 1 && name !== null) { + return summaryOnly(ROLE_RENAME_SUMMARY, {actor, oldName: nameValue(name.previous), newName: nameValue(name.next)}); + } + + const rows: Array = []; + if (name !== null) { + rows.push( + row('name', 'neutral', ROLE_NAME_CHANGE_ROW, {oldName: nameValue(name.previous), newName: nameValue(name.next)}), + ); + } + if (permissions !== null && permissions.added.length > 0) { + rows.push( + row('permissions-granted', 'add', ROLE_PERMISSIONS_GRANT_ROW, {permissions: permissionsValue(permissions.added)}), + ); + } + if (permissions !== null && permissions.removed.length > 0) { + rows.push( + row('permissions-revoked', 'remove', ROLE_PERMISSIONS_REVOKE_ROW, { + permissions: permissionsValue(permissions.removed), + }), + ); + } + if (color !== null) { + rows.push(colorRow(color)); + } + if (hoist !== null) { + rows.push(hoist ? row('hoist', 'add', ROLE_HOIST_START_ROW) : row('hoist', 'remove', ROLE_HOIST_STOP_ROW)); + } + if (mentionable !== null) { + rows.push( + mentionable + ? row('mentionable', 'add', ROLE_MENTIONABLE_ALLOW_ROW) + : row('mentionable', 'remove', ROLE_MENTIONABLE_DISALLOW_ROW), + ); + } + if (emoji !== null) { + rows.push(emojiRow(emoji)); + } + if (icon !== null) { + rows.push(iconRow(icon)); + } + if (roleListMove !== null) { + rows.push(row('position', 'neutral', ROLE_LIST_MOVE_ROWS[roleListMove])); + } + if (memberListPosition !== null) { + rows.push(row('hoist-position', 'neutral', MEMBER_LIST_POSITION_ROWS[memberListPosition])); + } + return {summary: {descriptor: ROLE_UPDATE_SUMMARY, values: {actor, role}}, rows, blocks: []}; +} + +export function presentRoleDelete(entry: GuildAuditLogEntryResponse): AuditLogDomainResult { + const permissions = permissionFlagsIn(readBitfield(readOldValue(entry, 'permissions')) ?? 0n); + return { + summary: { + descriptor: ROLE_DELETE_SUMMARY, + values: { + actor: actorPlaceholder(entry), + role: rolePlaceholder(entry, readString(readOldValue(entry, 'name'))), + }, + }, + rows: + permissions.length > 0 + ? [row('permissions', 'remove', ROLE_DELETED_PERMISSIONS_ROW, {permissions: permissionsValue(permissions)})] + : [], + blocks: [], + }; +} diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts new file mode 100644 index 000000000..56649e64e --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts @@ -0,0 +1,95 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {msg} from '@lingui/core/macro'; + +export const DELETED_CHANNEL_LABEL = msg({ + message: 'deleted-channel', + comment: + 'Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app.', +}); +export const DELETED_CATEGORY_LABEL = msg({ + message: 'deleted-category', + comment: + 'Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app.', +}); +export const DELETED_ROLE_LABEL = msg({ + message: 'deleted-role', + comment: + 'Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app.', +}); +export const SYSTEM_ACTOR_LABEL = msg({ + message: 'System', + comment: + 'Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences.', +}); +export const BAN_REASON_LABEL = msg({ + message: 'Ban reason', + comment: + 'Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label.', +}); +export const MORE_PERMISSIONS_DESCRIPTOR = msg({ + message: '{count, plural, one {# more permission} other {# more permissions}}', + comment: + 'Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number.', +}); +export const UNKNOWN_ACTION_SUMMARY = msg({ + message: '{actor} made a change that this version of the app cannot show.', + comment: + 'Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System.', +}); +export const CENTERED_LABEL = msg({ + message: 'Centered', + comment: 'Audit log value for invite splash alignment: centered image placement.', +}); +export const LEFT_ALIGNED_LABEL = msg({ + message: 'Left aligned', + comment: 'Audit log value for invite splash alignment: left image placement.', +}); +export const RIGHT_ALIGNED_LABEL = msg({ + message: 'Right aligned', + comment: 'Audit log value for invite splash alignment: right image placement.', +}); +export const VERIFICATION_LEVEL_NONE_LABEL = msg({ + message: 'None', + comment: + 'Activity log value naming the lowest member verification level of a community, where no verification is required.', +}); +export const VERIFICATION_LEVEL_LOW_LABEL = msg({ + message: 'Low', + comment: 'Activity log value naming the low member verification level of a community.', +}); +export const VERIFICATION_LEVEL_MEDIUM_LABEL = msg({ + message: 'Medium', + comment: 'Activity log value naming the medium member verification level of a community.', +}); +export const VERIFICATION_LEVEL_HIGH_LABEL = msg({ + message: 'High', + comment: 'Activity log value naming the high member verification level of a community.', +}); +export const VERIFICATION_LEVEL_VERY_HIGH_LABEL = msg({ + message: 'Very high', + comment: 'Activity log value naming the highest member verification level of a community.', +}); +export const EXPLICIT_CONTENT_FILTER_OFF_LABEL = msg({ + message: 'Off', + comment: 'Activity log value meaning the explicit content filter of a community is turned off.', +}); +export const EXPLICIT_CONTENT_FILTER_MEMBERS_WITHOUT_ROLES_LABEL = msg({ + message: 'Filter members without roles', + comment: + 'Activity log value for the explicit content filter setting that filters messages from members who have no roles.', +}); +export const EXPLICIT_CONTENT_FILTER_EVERYONE_LABEL = msg({ + message: 'Filter everyone', + comment: 'Activity log value for the explicit content filter setting that filters messages from every member.', +}); +export const DEFAULT_NOTIFICATIONS_ALL_MESSAGES_LABEL = msg({ + message: 'All messages', + comment: + 'Activity log value for the default notification setting of a community where members are notified about every message.', +}); +export const DEFAULT_NOTIFICATIONS_MENTIONS_ONLY_LABEL = msg({ + message: 'Mentions only', + comment: + 'Activity log value for the default notification setting of a community where members are notified only when mentioned.', +}); diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogTestUtils.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogTestUtils.ts new file mode 100644 index 000000000..d0ec3ea6b --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogTestUtils.ts @@ -0,0 +1,160 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import type { + AuditLogBlock, + AuditLogDomainResult, + AuditLogPlaceholder, + AuditLogPresentationContext, + AuditLogSentence, + AuditLogTone, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogPresentationTypes'; +import { + MORE_PERMISSIONS_DESCRIPTOR, + SYSTEM_ACTOR_LABEL, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages'; +import {largestDurationUnit} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogValues'; +import { + DAYS_DURATION_PLURAL_DESCRIPTOR, + HOURS_DURATION_PLURAL_DESCRIPTOR, + MINUTES_DURATION_PLURAL_DESCRIPTOR, + SECONDS_DURATION_PLURAL_DESCRIPTOR, +} from '@app/features/i18n/utils/CommonMessageDescriptors'; +import {getPermissionTitleDescriptor} from '@app/features/permissions/utils/PermissionLabelDescriptors'; +import type {GuildAuditLogEntryResponse} from '@fluxer/schema/src/domains/guild/GuildAuditLogSchemas'; +import * as SnowflakeUtils from '@fluxer/snowflake/src/SnowflakeUtils'; +import {setupI18n} from '@lingui/core'; + +export const TEST_GUILD_ID = '1400000000000000000'; +export const TEST_ACTOR_ID = '1400000000000000001'; +export const TEST_ENTRY_TIME = Date.parse('2026-09-01T12:00:00.000Z'); + +const TEST_ENTRY_ID = SnowflakeUtils.fromTimestamp(TEST_ENTRY_TIME); +const PERMISSION_LIST_LIMIT = 8; +const PERMISSION_LIST_SHOWN = 7; +const MESSAGE_ARGUMENT_PATTERN = /\{\s*(\w+)\s*[,}]/g; +const TONE_MARKS: Record = {add: '+', remove: '-', neutral: '~'}; + +const i18n = setupI18n({locale: 'en', messages: {en: {}}}); +const listFormatter = new Intl.ListFormat('en', {type: 'conjunction', style: 'long'}); + +interface AuditLogEntryFixture { + action_type: number; + id?: string; + user_id?: string | null; + target_id?: string | null; + reason?: string; + options?: Record; + changes?: Array<{key: string; old_value?: unknown; new_value?: unknown}>; +} + +interface FakeContextNames { + webhooks?: Readonly>; + emojis?: Readonly>; + stickers?: Readonly>; +} + +interface AuditLogResultText { + summary: string; + rows: Array; + blocks: Array; +} + +export function makeEntry(fixture: AuditLogEntryFixture): GuildAuditLogEntryResponse { + return {id: TEST_ENTRY_ID, user_id: TEST_ACTOR_ID, target_id: null, ...fixture} as GuildAuditLogEntryResponse; +} + +export function fakeContext(names: FakeContextNames = {}): AuditLogPresentationContext { + return { + guildId: TEST_GUILD_ID, + getWebhookName: (id) => names.webhooks?.[id] ?? null, + getEmojiName: (id) => names.emojis?.[id] ?? null, + getStickerName: (id) => names.stickers?.[id] ?? null, + }; +} + +function formatDuration(seconds: number): string { + const {unit, value} = largestDurationUnit(seconds); + switch (unit) { + case 'days': + return i18n._(DAYS_DURATION_PLURAL_DESCRIPTOR, {days: value}); + case 'hours': + return i18n._(HOURS_DURATION_PLURAL_DESCRIPTOR, {hours: value}); + case 'minutes': + return i18n._(MINUTES_DURATION_PLURAL_DESCRIPTOR, {minutes: value}); + case 'seconds': + return i18n._(SECONDS_DURATION_PLURAL_DESCRIPTOR, {seconds: value}); + } +} + +function formatPermissions(flags: ReadonlyArray): string { + const titles = flags.map((flag) => { + const descriptor = getPermissionTitleDescriptor(flag); + return descriptor ? i18n._(descriptor) : flag.toString(); + }); + if (titles.length <= PERMISSION_LIST_LIMIT) return listFormatter.format(titles); + return listFormatter.format([ + ...titles.slice(0, PERMISSION_LIST_SHOWN), + i18n._(MORE_PERMISSIONS_DESCRIPTOR, {count: titles.length - PERMISSION_LIST_SHOWN}), + ]); +} + +function formatColor(value: number): string { + return `#${value.toString(16).padStart(6, '0').toUpperCase()}`; +} + +function placeholderToText(placeholder: AuditLogPlaceholder, userNames: Readonly>): string { + switch (placeholder.kind) { + case 'user': + return userNames[placeholder.id] ?? `@${placeholder.id}`; + case 'system': + return i18n._(SYSTEM_ACTOR_LABEL); + case 'channel': + return `#${placeholder.recordedName ?? placeholder.id}`; + case 'role': + return placeholder.id === TEST_GUILD_ID ? '@everyone' : `@${placeholder.recordedName ?? placeholder.id}`; + case 'name': + case 'text': + return placeholder.value; + case 'emoji': + return `:${placeholder.name}:`; + case 'date': + return new Date(placeholder.timestamp).toISOString(); + case 'duration': + return formatDuration(placeholder.seconds); + case 'permissions': + return formatPermissions(placeholder.flags); + case 'color': + return formatColor(placeholder.value); + case 'label': + return i18n._(placeholder.descriptor); + } +} + +export function toText(sentence: AuditLogSentence, userNames: Readonly> = {}): string { + const message = sentence.descriptor.message ?? ''; + const argumentNames = new Set(Array.from(message.matchAll(MESSAGE_ARGUMENT_PATTERN), (match) => match[1])); + const passedNames = Object.keys(sentence.values); + const unused = passedNames.filter((name) => !argumentNames.has(name)); + const missing = [...argumentNames].filter((name) => !Object.hasOwn(sentence.values, name)); + if (unused.length > 0 || missing.length > 0) { + throw new Error( + `Placeholders do not match "${message}". Not in the message: [${unused.join(', ')}]. Not passed: [${missing.join(', ')}].`, + ); + } + const values: Record = {}; + for (const [name, value] of Object.entries(sentence.values)) { + values[name] = typeof value === 'number' ? value : placeholderToText(value, userNames); + } + return i18n._(sentence.descriptor, values); +} + +export function resultToText( + result: AuditLogDomainResult, + userNames: Readonly> = {}, +): AuditLogResultText { + return { + summary: toText(result.summary, userNames), + rows: result.rows.map((row) => `${TONE_MARKS[row.tone]} ${toText(row.sentence, userNames)}`), + blocks: result.blocks, + }; +} diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogValues.test.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogValues.test.ts new file mode 100644 index 000000000..eccdc7bb1 --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogValues.test.ts @@ -0,0 +1,380 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import { + makeEntry, + TEST_ACTOR_ID, + TEST_ENTRY_TIME, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogTestUtils'; +import { + actorPlaceholder, + channelNoun, + decodeAuditReason, + diffBitfields, + diffOverwriteStates, + entryTime, + featureDelta, + largestDurationUnit, + permissionFlagsIn, + readBitfield, + readBoolean, + readChange, + readNumber, + readOption, + readSnowflake, + readString, + readStringArray, + readTimestamp, + roleIdDiff, +} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogValues'; +import {AuditLogActionType} from '@fluxer/constants/src/AuditLogActionType'; +import {ALL_PERMISSIONS, Permissions} from '@fluxer/constants/src/ChannelConstants'; +import {GuildFeatures} from '@fluxer/constants/src/GuildConstants'; +import {describe, expect, it, vi} from 'vitest'; + +vi.mock('@lingui/core/macro', () => { + const descriptor = (value: unknown): unknown => (typeof value === 'string' ? {message: value} : value); + return {msg: descriptor, t: descriptor, plural: () => '', select: () => '', selectOrdinal: () => ''}; +}); + +vi.mock('@app/features/app/config/Config', () => ({ + default: { + PUBLIC_BUILD_VERSION: 'test', + PUBLIC_RELEASE_CHANNEL: 'canary', + PUBLIC_BOOTSTRAP_API_ENDPOINT: 'https://example.invalid', + PUBLIC_BOOTSTRAP_API_PUBLIC_ENDPOINT: 'https://example.invalid', + }, +})); + +const UNKNOWN_BIT = 1n << 62n; +const JUNK: Array = [null, undefined, true, [], {}, Number.NaN]; + +describe('readString', () => { + it('trims and keeps non-blank strings', () => { + expect(readString(' general ')).toBe('general'); + expect(readString('0')).toBe('0'); + }); + + it('treats blank strings and non-strings as missing', () => { + for (const junk of ['', ' ', 5, ...JUNK]) { + expect(readString(junk)).toBeNull(); + } + }); +}); + +describe('readNumber', () => { + it('reads REST numbers and dispatch numeric strings', () => { + expect(readNumber(3600)).toBe(3600); + expect(readNumber(0)).toBe(0); + expect(readNumber('3600')).toBe(3600); + expect(readNumber(' 7 ')).toBe(7); + expect(readNumber('-1.5')).toBe(-1.5); + }); + + it('rejects junk', () => { + for (const junk of ['', ' ', 'x', '7 days', '0x10', Number.POSITIVE_INFINITY, ...JUNK]) { + expect(readNumber(junk)).toBeNull(); + } + }); +}); + +describe('readBoolean', () => { + it('reads REST booleans and dispatch boolean strings', () => { + expect(readBoolean(true)).toBe(true); + expect(readBoolean(false)).toBe(false); + expect(readBoolean('true')).toBe(true); + expect(readBoolean('false')).toBe(false); + }); + + it('rejects junk', () => { + for (const junk of ['1', '0', 1, 0, 'yes', 'TRUE', '', null, undefined, {}]) { + expect(readBoolean(junk)).toBeNull(); + } + }); +}); + +describe('readTimestamp', () => { + it('parses date strings', () => { + expect(readTimestamp('2026-09-01T12:00:00.000Z')).toBe(Date.parse('2026-09-01T12:00:00.000Z')); + expect(readTimestamp('2026-09-01T12:00:00+00:00')).toBe(Date.parse('2026-09-01T12:00:00.000Z')); + }); + + it('rejects unparseable strings and non-strings', () => { + for (const junk of ['not-a-date', '', ' ', 1788264000000, ...JUNK]) { + expect(readTimestamp(junk)).toBeNull(); + } + }); +}); + +describe('readBitfield', () => { + it('reads decimal strings and safe integers', () => { + expect(readBitfield('8')).toBe(8n); + expect(readBitfield('0')).toBe(0n); + expect(readBitfield(8)).toBe(8n); + expect(readBitfield((1n << 51n).toString())).toBe(Permissions.PIN_MESSAGES); + }); + + it('rejects junk', () => { + for (const junk of ['-8', '8.5', ' 8', 'abc', '', 1.5, -1, 2 ** 53, 8n, ...JUNK]) { + expect(readBitfield(junk)).toBeNull(); + } + }); +}); + +describe('readSnowflake', () => { + it('reads snowflake strings', () => { + expect(readSnowflake('1400000000000000123')).toBe('1400000000000000123'); + }); + + it('rejects junk', () => { + for (const junk of ['', 'abc', '12a', ' 123', '123456789012345678901', 1400000000000000000, ...JUNK]) { + expect(readSnowflake(junk)).toBeNull(); + } + }); +}); + +describe('readStringArray', () => { + it('reads arrays of strings', () => { + expect(readStringArray(['a', 'b'])).toEqual(['a', 'b']); + expect(readStringArray([])).toEqual([]); + }); + + it('rejects arrays holding anything but strings, and non-arrays', () => { + for (const junk of [['a', 1], [null], 'a', ...JUNK.filter((value) => !Array.isArray(value))]) { + expect(readStringArray(junk)).toBeNull(); + } + }); +}); + +describe('readChange', () => { + it('reports presence from the keys that exist, counting explicit nulls', () => { + const entry = makeEntry({ + action_type: AuditLogActionType.MEMBER_UPDATE, + changes: [ + {key: 'nick', new_value: 'Hampus'}, + {key: 'avatar_hash', old_value: 'abc'}, + {key: 'banner_hash', old_value: null, new_value: null}, + ], + }); + expect(readChange(entry, 'nick')).toEqual({hasOld: false, hasNew: true, oldValue: null, newValue: 'Hampus'}); + expect(readChange(entry, 'avatar_hash')).toEqual({hasOld: true, hasNew: false, oldValue: 'abc', newValue: null}); + expect(readChange(entry, 'banner_hash')).toEqual({hasOld: true, hasNew: true, oldValue: null, newValue: null}); + }); + + it('uses the first occurrence of a key', () => { + const entry = makeEntry({ + action_type: AuditLogActionType.CHANNEL_UPDATE, + changes: [ + {key: 'name', old_value: 'first-old', new_value: 'first-new'}, + {key: 'name', old_value: 'second-old', new_value: 'second-new'}, + ], + }); + expect(readChange(entry, 'name')).toEqual({ + hasOld: true, + hasNew: true, + oldValue: 'first-old', + newValue: 'first-new', + }); + }); + + it('returns null for a missing key or missing changes', () => { + const entry = makeEntry({action_type: AuditLogActionType.CHANNEL_UPDATE, changes: [{key: 'name', new_value: 'a'}]}); + expect(readChange(entry, 'topic')).toBeNull(); + expect(readChange(makeEntry({action_type: AuditLogActionType.MEMBER_KICK}), 'name')).toBeNull(); + }); +}); + +describe('readOption', () => { + it('returns REST typed values and raw dispatch strings as stored', () => { + const rest = makeEntry({ + action_type: AuditLogActionType.INVITE_CREATE, + options: {max_age: 604800, temporary: false, channel_id: '1400000000000000200'}, + }); + const dispatch = makeEntry({ + action_type: AuditLogActionType.INVITE_CREATE, + options: {max_age: '604800', temporary: 'false'}, + }); + expect(readOption(rest, 'max_age')).toBe(604800); + expect(readOption(rest, 'temporary')).toBe(false); + expect(readOption(rest, 'channel_id')).toBe('1400000000000000200'); + expect(readNumber(readOption(dispatch, 'max_age'))).toBe(604800); + expect(readBoolean(readOption(dispatch, 'temporary'))).toBe(false); + }); + + it('returns null for a missing key or missing options', () => { + expect(readOption(makeEntry({action_type: AuditLogActionType.MEMBER_BAN_ADD, options: {}}), 'count')).toBeNull(); + expect(readOption(makeEntry({action_type: AuditLogActionType.MEMBER_BAN_ADD}), 'count')).toBeNull(); + }); +}); + +describe('entryTime', () => { + it('reads the time from the entry snowflake', () => { + expect(entryTime(makeEntry({action_type: AuditLogActionType.MEMBER_KICK}))).toBe(TEST_ENTRY_TIME); + }); +}); + +describe('actorPlaceholder', () => { + it('is the acting user', () => { + expect(actorPlaceholder(makeEntry({action_type: AuditLogActionType.MEMBER_KICK}))).toEqual({ + kind: 'user', + id: TEST_ACTOR_ID, + }); + }); + + it('is the system when user_id is "0"', () => { + expect(actorPlaceholder(makeEntry({action_type: AuditLogActionType.MEMBER_ROLE_UPDATE, user_id: '0'}))).toEqual({ + kind: 'system', + }); + }); +}); + +describe('decodeAuditReason', () => { + it('keeps plain reasons, including a lone percent sign', () => { + expect(decodeAuditReason('Spamming invites')).toBe('Spamming invites'); + expect(decodeAuditReason('Banned for 100% spam')).toBe('Banned for 100% spam'); + }); + + it('decodes percent-encoded UTF-8', () => { + expect(decodeAuditReason('Spamming%20invites')).toBe('Spamming invites'); + expect(decodeAuditReason('Caf%C3%A9%20raid%20%E7%A6%81%E6%AD%A2')).toBe('Café raid 禁止'); + }); + + it('keeps a malformed sequence raw', () => { + expect(decodeAuditReason('bad %E0%A4%A sequence')).toBe('bad %E0%A4%A sequence'); + }); + + it('trims, and treats whitespace and missing reasons as null', () => { + expect(decodeAuditReason(' padded ')).toBe('padded'); + expect(decodeAuditReason(' ')).toBeNull(); + expect(decodeAuditReason('')).toBeNull(); + expect(decodeAuditReason('%20%20')).toBeNull(); + expect(decodeAuditReason(null)).toBeNull(); + expect(decodeAuditReason(undefined)).toBeNull(); + }); +}); + +describe('largestDurationUnit', () => { + it.each([ + [30, {unit: 'seconds', value: 30}], + [90, {unit: 'seconds', value: 90}], + [300, {unit: 'minutes', value: 5}], + [3600, {unit: 'hours', value: 1}], + [5400, {unit: 'minutes', value: 90}], + [86400, {unit: 'days', value: 1}], + [604800, {unit: 'days', value: 7}], + [259199.993, {unit: 'days', value: 3}], + [0, {unit: 'seconds', value: 0}], + ])('expresses %s seconds in the largest whole unit', (seconds, expected) => { + expect(largestDurationUnit(seconds)).toEqual(expected); + }); +}); + +describe('permissionFlagsIn', () => { + it('lists known flags in the Permissions declaration order', () => { + expect(permissionFlagsIn(ALL_PERMISSIONS | UNKNOWN_BIT)).toEqual(Object.values(Permissions)); + expect(permissionFlagsIn(Permissions.MANAGE_ROLES | Permissions.KICK_MEMBERS | UNKNOWN_BIT)).toEqual([ + Permissions.KICK_MEMBERS, + Permissions.MANAGE_ROLES, + ]); + expect(permissionFlagsIn(0n)).toEqual([]); + }); +}); + +describe('diffBitfields', () => { + it('lists added and removed known flags in declaration order', () => { + expect( + diffBitfields( + Permissions.VIEW_CHANNEL | Permissions.SEND_MESSAGES | UNKNOWN_BIT, + Permissions.SEND_MESSAGES | Permissions.MANAGE_ROLES | Permissions.ADMINISTRATOR, + ), + ).toEqual({added: [Permissions.ADMINISTRATOR, Permissions.MANAGE_ROLES], removed: [Permissions.VIEW_CHANNEL]}); + }); + + it('is empty for equal masks and unknown bits', () => { + expect(diffBitfields(Permissions.SPEAK, Permissions.SPEAK)).toEqual({added: [], removed: []}); + expect(diffBitfields(0n, UNKNOWN_BIT)).toEqual({added: [], removed: []}); + }); +}); + +describe('diffOverwriteStates', () => { + it('reports an allow to deny flip as denied only', () => { + expect( + diffOverwriteStates({allow: Permissions.SEND_MESSAGES, deny: 0n}, {allow: 0n, deny: Permissions.SEND_MESSAGES}), + ).toEqual({allowed: [], denied: [Permissions.SEND_MESSAGES], cleared: []}); + }); + + it('reports an allow that is no longer set as cleared', () => { + expect( + diffOverwriteStates( + {allow: Permissions.VIEW_CHANNEL | Permissions.SEND_MESSAGES, deny: 0n}, + {allow: Permissions.VIEW_CHANNEL, deny: 0n}, + ), + ).toEqual({allowed: [], denied: [], cleared: [Permissions.SEND_MESSAGES]}); + }); + + it('reports a deny that is no longer set as cleared', () => { + expect(diffOverwriteStates({allow: 0n, deny: Permissions.ATTACH_FILES}, {allow: 0n, deny: 0n})).toEqual({ + allowed: [], + denied: [], + cleared: [Permissions.ATTACH_FILES], + }); + }); + + it('reports new allows and denies in declaration order', () => { + expect( + diffOverwriteStates( + {allow: 0n, deny: 0n}, + { + allow: Permissions.SPEAK | Permissions.VIEW_CHANNEL, + deny: Permissions.MENTION_EVERYONE | Permissions.ADD_REACTIONS, + }, + ), + ).toEqual({ + allowed: [Permissions.VIEW_CHANNEL, Permissions.SPEAK], + denied: [Permissions.ADD_REACTIONS, Permissions.MENTION_EVERYONE], + cleared: [], + }); + }); + + it('ignores unknown bits', () => { + expect(diffOverwriteStates({allow: UNKNOWN_BIT, deny: 1n << 61n}, {allow: 1n << 61n, deny: UNKNOWN_BIT})).toEqual({ + allowed: [], + denied: [], + cleared: [], + }); + }); +}); + +describe('roleIdDiff', () => { + it('lists added ids in new order and removed ids in old order', () => { + expect(roleIdDiff(['a', 'b', 'c', 'f'], ['e', 'c', 'd', 'a'])).toEqual({added: ['e', 'd'], removed: ['b', 'f']}); + expect(roleIdDiff(['x', 'b', 'y'], [])).toEqual({added: [], removed: ['x', 'b', 'y']}); + }); + + it('lists each id once', () => { + expect(roleIdDiff([], ['a', 'a'])).toEqual({added: ['a'], removed: []}); + }); +}); + +describe('channelNoun', () => { + it.each([ + [0, 'text'], + [2, 'voice'], + [998, 'link'], + [4, 'category'], + [1, 'generic'], + [3, 'generic'], + [null, 'generic'], + ] as const)('maps channel type %s to %s', (type, noun) => { + expect(channelNoun(type)).toBe(noun); + }); +}); + +describe('featureDelta', () => { + it('reports whether one feature was added or removed', () => { + const feature = GuildFeatures.INVITES_DISABLED; + expect(featureDelta([], [feature], feature)).toBe('added'); + expect(featureDelta([feature, 'OTHER'], ['OTHER'], feature)).toBe('removed'); + expect(featureDelta([feature], [feature], feature)).toBeNull(); + expect(featureDelta(['OTHER'], [], feature)).toBeNull(); + }); +}); diff --git a/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogValues.ts b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogValues.ts new file mode 100644 index 000000000..2bd5e0c07 --- /dev/null +++ b/fluxer_app/src/features/guild/utils/guild_tabs/audit_log/AuditLogValues.ts @@ -0,0 +1,181 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import type {AuditLogPlaceholder} from '@app/features/guild/utils/guild_tabs/audit_log/AuditLogPresentationTypes'; +import {ChannelTypes, Permissions} from '@fluxer/constants/src/ChannelConstants'; +import {SECONDS_PER_DAY, SECONDS_PER_HOUR, SECONDS_PER_MINUTE} from '@fluxer/date_utils/src/DateConstants'; +import type {GuildAuditLogEntryResponse} from '@fluxer/schema/src/domains/guild/GuildAuditLogSchemas'; +import * as SnowflakeUtils from '@fluxer/snowflake/src/SnowflakeUtils'; + +const SYSTEM_USER_ID = '0'; +const PERMISSION_FLAGS: ReadonlyArray = Object.values(Permissions); +const DECIMAL_NUMBER_PATTERN = /^-?\d+(\.\d+)?$/; +const UNSIGNED_INTEGER_PATTERN = /^\d+$/; +const SNOWFLAKE_PATTERN = /^\d{1,20}$/; +const PERCENT_ENCODED_BYTE_PATTERN = /%[0-9A-Fa-f]{2}/; + +interface ChangeValues { + hasOld: boolean; + hasNew: boolean; + oldValue: unknown; + newValue: unknown; +} + +interface OverwriteState { + allow: bigint; + deny: bigint; +} + +function hasFlag(mask: bigint, flag: bigint): boolean { + return (mask & flag) === flag; +} + +export function readChange(entry: GuildAuditLogEntryResponse, key: string): ChangeValues | null { + const change = entry.changes?.find((candidate) => candidate.key === key); + if (!change) return null; + const hasOld = Object.hasOwn(change, 'old_value'); + const hasNew = Object.hasOwn(change, 'new_value'); + return { + hasOld, + hasNew, + oldValue: hasOld ? change.old_value : null, + newValue: hasNew ? change.new_value : null, + }; +} + +export function readString(value: unknown): string | null { + if (typeof value !== 'string') return null; + const trimmed = value.trim(); + return trimmed.length > 0 ? trimmed : null; +} + +export function readNumber(value: unknown): number | null { + if (typeof value === 'number') return Number.isFinite(value) ? value : null; + if (typeof value === 'string' && DECIMAL_NUMBER_PATTERN.test(value.trim())) return Number(value); + return null; +} + +export function readBoolean(value: unknown): boolean | null { + if (typeof value === 'boolean') return value; + if (value === 'true') return true; + if (value === 'false') return false; + return null; +} + +export function readTimestamp(value: unknown): number | null { + const text = readString(value); + if (text === null) return null; + const timestamp = Date.parse(text); + return Number.isNaN(timestamp) ? null : timestamp; +} + +export function readBitfield(value: unknown): bigint | null { + if (typeof value === 'string') return UNSIGNED_INTEGER_PATTERN.test(value) ? BigInt(value) : null; + if (typeof value === 'number') return Number.isSafeInteger(value) && value >= 0 ? BigInt(value) : null; + return null; +} + +export function readSnowflake(value: unknown): string | null { + return typeof value === 'string' && SNOWFLAKE_PATTERN.test(value) ? value : null; +} + +export function readStringArray(value: unknown): Array | null { + if (!Array.isArray(value)) return null; + return value.every((item): item is string => typeof item === 'string') ? [...value] : null; +} + +export function readOption(entry: GuildAuditLogEntryResponse, key: string): unknown { + const options: Readonly> | undefined = entry.options; + return options?.[key] ?? null; +} + +export function entryTime(entry: GuildAuditLogEntryResponse): number { + return SnowflakeUtils.extractTimestamp(entry.id); +} + +export function actorPlaceholder(entry: GuildAuditLogEntryResponse): AuditLogPlaceholder { + return entry.user_id === SYSTEM_USER_ID ? {kind: 'system'} : {kind: 'user', id: entry.user_id ?? ''}; +} + +export function decodeAuditReason(raw: unknown): string | null { + const trimmed = readString(raw); + if (trimmed === null || !PERCENT_ENCODED_BYTE_PATTERN.test(trimmed)) return trimmed; + try { + return readString(decodeURIComponent(trimmed)); + } catch { + return trimmed; + } +} + +export function permissionFlagsIn(mask: bigint): Array { + return PERMISSION_FLAGS.filter((flag) => hasFlag(mask, flag)); +} + +export function diffBitfields(oldMask: bigint, newMask: bigint): {added: Array; removed: Array} { + return { + added: PERMISSION_FLAGS.filter((flag) => hasFlag(newMask, flag) && !hasFlag(oldMask, flag)), + removed: PERMISSION_FLAGS.filter((flag) => hasFlag(oldMask, flag) && !hasFlag(newMask, flag)), + }; +} + +export function diffOverwriteStates( + previous: OverwriteState, + next: OverwriteState, +): {allowed: Array; denied: Array; cleared: Array} { + return { + allowed: PERMISSION_FLAGS.filter((flag) => hasFlag(next.allow, flag) && !hasFlag(previous.allow, flag)), + denied: PERMISSION_FLAGS.filter((flag) => hasFlag(next.deny, flag) && !hasFlag(previous.deny, flag)), + cleared: PERMISSION_FLAGS.filter( + (flag) => + (hasFlag(previous.allow, flag) || hasFlag(previous.deny, flag)) && + !hasFlag(next.allow, flag) && + !hasFlag(next.deny, flag), + ), + }; +} + +export function largestDurationUnit(seconds: number): {unit: 'days' | 'hours' | 'minutes' | 'seconds'; value: number} { + const rounded = Math.round(seconds); + if (rounded === 0) return {unit: 'seconds', value: 0}; + if (rounded % SECONDS_PER_DAY === 0) return {unit: 'days', value: rounded / SECONDS_PER_DAY}; + if (rounded % SECONDS_PER_HOUR === 0) return {unit: 'hours', value: rounded / SECONDS_PER_HOUR}; + if (rounded % SECONDS_PER_MINUTE === 0) return {unit: 'minutes', value: rounded / SECONDS_PER_MINUTE}; + return {unit: 'seconds', value: rounded}; +} + +export function channelNoun(type: number | null): 'text' | 'voice' | 'link' | 'category' | 'generic' { + switch (type) { + case ChannelTypes.GUILD_TEXT: + return 'text'; + case ChannelTypes.GUILD_VOICE: + return 'voice'; + case ChannelTypes.GUILD_LINK: + return 'link'; + case ChannelTypes.GUILD_CATEGORY: + return 'category'; + default: + return 'generic'; + } +} + +export function roleIdDiff( + previous: ReadonlyArray, + next: ReadonlyArray, +): {added: Array; removed: Array} { + const previousIds = new Set(previous); + const nextIds = new Set(next); + return { + added: [...nextIds].filter((id) => !previousIds.has(id)), + removed: [...previousIds].filter((id) => !nextIds.has(id)), + }; +} + +export function featureDelta( + previous: ReadonlyArray, + next: ReadonlyArray, + feature: string, +): 'added' | 'removed' | null { + const hadFeature = previous.includes(feature); + const hasFeature = next.includes(feature); + if (hadFeature === hasFeature) return null; + return hasFeature ? 'added' : 'removed'; +} diff --git a/fluxer_app/src/features/i18n/locales/ar/messages.po b/fluxer_app/src/features/i18n/locales/ar/messages.po index e0cdb55a9..9655be2fd 100644 --- a/fluxer_app/src/features/i18n/locales/ar/messages.po +++ b/fluxer_app/src/features/i18n/locales/ar/messages.po @@ -56,6 +56,31 @@ msgstr "{a} يكتب..." msgid "{a}, {b} and {c} are typing..." msgstr "{a} و{b} و{c} يكتبون..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "قام {actor} بإضافة تجاوز إذن لـ {user} في {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "قام {actor} بإضافة تجاوز إذن لـ @everyone في {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "قام {actor} بإضافة تجاوز إذن للدور {role} في {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "قام {actor} بإضافة ملصق." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "قام {actor} بإضافة رمز تعبيري." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "أضاف {actor} أذونات القناة لـ {targetEntity} في {channelNode}." @@ -64,35 +89,200 @@ msgstr "أضاف {actor} أذونات القناة لـ {targetEntity} في {cha msgid "{actor} added channel permissions for {targetEntity}." msgstr "أضاف {actor} أذونات القناة لـ {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "قام {actor} بإضافة البوت {target} كعضو مؤقت." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "قام {actor} بإضافة البوت {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "أضاف {actor} البوت {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "قام {actor} بإضافة الرمز التعبيري {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "أضاف {actor} الرمز التعبيري {namedTarget}." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "قام {actor} بإضافة الملصق {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "أضاف {actor} الملصق {namedTarget}." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "قام {actor} بحظر {target} لمدة {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "قام {actor} بحظر {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "حظر {actor} العضو {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "قام {actor} بتغيير مدة منع {target} من إرسال الرسائل وإضافة ردود الفعل والانضمام إلى القنوات الصوتية لتنتهي في {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "قام {actor} بتغيير لقب {target} من {oldNick} إلى {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "قام {actor} بتغيير تجاوزات الأذونات للفئة {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "قام {actor} بتغيير تجاوزات الأذونات للقناة {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "قام {actor} بتغيير تجاوزات الأذونات لقناة الرابط {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "قام {actor} بتغيير تجاوزات الأذونات للقناة النصية {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "قام {actor} بتغيير تجاوزات الأذونات للقناة الصوتية {channel}." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "قام {actor} بتغيير عنوان URL المخصص من {oldCode} إلى {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "قام {actor} بتغيير الصورة الرمزية لملفه الشخصي في المجتمع." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "قام {actor} بتغيير لافتة ملفه الشخصي في المجتمع." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "قام {actor} بتغيير نبذة ملفه الشخصي في المجتمع إلى {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "قام {actor} بتغيير لقبه من {oldNick} إلى {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "قام {actor} بإنشاء ويب هوك." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "قام {actor} بإنشاء الفئة {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "قام {actor} بإنشاء القناة {channel} في {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "قام {actor} بإنشاء القناة {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "أنشأ {actor} القناة {namedTarget}." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "قام {actor} بإنشاء الدعوة {code} لـ {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "قام {actor} بإنشاء الدعوة {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "أنشأ {actor} الدعوة {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "قام {actor} بإنشاء قناة الرابط {channel} في {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "قام {actor} بإنشاء قناة الرابط {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "أنشأ {actor} الدور {namedTarget}." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "قام {actor} بإنشاء دور {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "قام {actor} بإنشاء قناة نصية باسم {channel} في {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "قام {actor} بإنشاء قناة نصية {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "قام {actor} بإنشاء قناة صوتية {channel} في {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "قام {actor} بإنشاء قناة صوتية {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "قام {actor} بإنشاء الويب هوك {name} في {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "قام {actor} بإنشاء الويب هوك {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "أنشأ {actor} الويب هوك {namedTarget}." @@ -103,49 +293,209 @@ msgstr "أنشأ {actor} الويب هوك {namedTarget}." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "حذف {actor} {0} {bulkCount, plural, zero {رسالة} one {رسالة} two {رسالتين} few {رسائل} many {رسالة} other {رسالة}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "قام {actor} بحذف {count, plural, zero {# رسالة} one {# رسالة} two {# رسالتين} few {# رسائل} many {# رسالة} other {# رسالة}} في {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "قام {actor} بحذف {count, plural, zero {# رسالة} one {# رسالة} two {# رسالتين} few {# رسائل} many {# رسالة} other {# رسالة}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "قام {actor} بحذف رسالة في {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "قام {actor} بحذف رسالة." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "حذف {actor} رسالة{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "قام {actor} بحذف ملصق." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "قام {actor} بحذف ويب هوك." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "قام {actor} بحذف رمز تعبيري." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "حذف {actor} رسائل متعددة{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "قام {actor} بحذف بعض الرسائل في {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "قام {actor} بحذف بعض الرسائل." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "قام {actor} بحذف الفئة {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "قام {actor} بحذف القناة {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "حذف {actor} القناة {namedTarget}." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "قام {actor} بحذف الرمز التعبيري {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "حذف {actor} الرمز التعبيري {namedTarget}." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "قام {actor} بحذف الدعوة {code} لـ {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "قام {actor} بحذف الدعوة {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "حذف {actor} الدعوة {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "قام {actor} بحذف قناة الرابط {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "حذف {actor} الدور {namedTarget}." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "قام {actor} بحذف دور {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "قام {actor} بحذف الملصق {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "حذف {actor} الملصق {namedTarget}." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "قام {actor} بحذف القناة النصية {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "قام {actor} بحذف القناة الصوتية {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "قام {actor} بحذف الويب هوك {name} من {channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "قام {actor} بحذف الويب هوك {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "حذف {actor} الويب هوك {namedTarget}." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "قام {actor} بفصل {target} من {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "قام {actor} بفصل {target} من المكالمة الصوتية." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "فصل {actor} {targetMember} عن المحادثة الصوتية." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "قام {actor} بقطع الاتصال من {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "قام {actor} بقطع الاتصال من المكالمة الصوتية." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "قام {actor} بمنح {target} دور {role}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "قام {actor} بطرد {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "طرد {actor} {targetMember}." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "سمح {actor} لـ {target} بسماع الآخرين في هذا المجتمع مرة أخرى." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "قام {actor} بإجراء تغيير لا يمكن لهذا الإصدار من التطبيق عرضه." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "قام {actor} بنقل {target} من {oldChannel} إلى {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "قام {actor} بنقل {target} إلى {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "قام {actor} بنقل {target} إلى قناة صوتية مختلفة." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "نقل {actor} {targetMember} إلى {channelNode}." @@ -154,16 +504,68 @@ msgstr "نقل {actor} {targetMember} إلى {channelNode}." msgid "{actor} moved {targetMember} to another voice channel." msgstr "نقل {actor} {targetMember} إلى قناة صوتية أخرى." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "قام {actor} بالانتقال من {oldChannel} إلى {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "قام {actor} بنقل دور {role} إلى الأسفل في قائمة الأعضاء." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "قام {actor} بنقل دور {role} إلى الأسفل في قائمة الأدوار." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "قام {actor} بنقل دور {role} إلى الأعلى في قائمة الأعضاء." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "قام {actor} بنقل دور {role} إلى الأعلى في قائمة الأدوار." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "انتقل {actor} إلى {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "قام {actor} بالانتقال إلى قناة صوتية مختلفة." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "قام {actor} بإيقاف الدعوات مؤقتًا." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "نفّذ {actor} إجراءً مسجَّلًا على {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "قام {actor} بتثبيت رسالة في {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "قام {actor} بتثبيت رسالة." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "ثبّت {actor} رسالة{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "أزال {actor} الأعضاء غير النشطين." @@ -179,19 +581,249 @@ msgstr "أزال {actor} أذونات القناة لـ {targetEntity} في {cha msgid "{actor} removed channel permissions for {targetEntity}." msgstr "أزال {actor} أذونات القناة لـ {targetEntity}." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "قام {actor} بإزالة لقب {nick} من {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "قام {actor} بإزالة تجاوز الأذونات لـ {user} من {channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "قام {actor} بإزالة تجاوز الإذن لـ @everyone من {channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "قام {actor} بإزالة تجاوز الإذن للدور {role} من {channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "قام {actor} بإزالة دور {role} من {target}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "قام {actor} بإزالة المهلة عن {target}." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "قام {actor} بإزالة عنوان URL المخصص {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "قام {actor} بإزالة لون تمييز ملفه الشخصي في المجتمع." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "قام {actor} بإزالة الصورة الرمزية لملفه الشخصي في المجتمع." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "قام {actor} بإزالة لافتة ملفه الشخصي في المجتمع." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "قام {actor} بإزالة نبذة ملفه الشخصي في المجتمع." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "قام {actor} بإزالة ضمائر ملفه الشخصي في المجتمع." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "قام {actor} بإزالة لقبه {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "قام {actor} بتغيير اسم الفئة من {oldName} إلى {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "قام {actor} بتغيير اسم القناة من {oldName} إلى {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "قام {actor} بتغيير اسم المجتمع من {oldName} إلى {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "قام {actor} بتغيير اسم الرمز التعبيري {oldEmoji} إلى {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "قام {actor} بتغيير اسم قناة الرابط من {oldName} إلى {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "قام {actor} بتغيير اسم الدور من {oldName} إلى {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "قام {actor} بتغيير اسم الملصق {oldName} إلى {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "قام {actor} بتغيير اسم القناة النصية {oldName} إلى {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "قام {actor} بتغيير اسم القناة الصوتية {oldName} إلى {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "قام {actor} بتغيير اسم الويب هوك {oldName} إلى {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "أعاد {actor} تعيين موضع قائمة الأعضاء للدور {role}." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "استأنف {actor} الدعوات." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "قام {actor} بتعيين موضع للدور {role} في قائمة الأعضاء." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "قام {actor} بتعيين لقب {target} إلى {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "قام {actor} بتعيين عنوان URL المخصص إلى {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "قام {actor} بتعيين لون تمييز ملفه الشخصي في المجتمع إلى {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "قام {actor} بتعيين الصورة الرمزية لملفه الشخصي في المجتمع." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "قام {actor} بتعيين لافتة ملفه الشخصي في المجتمع." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "قام {actor} بتعيين نبذة ملفه الشخصي في المجتمع إلى {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "قام {actor} بتعيين ضمائر ملفه الشخصي في المجتمع إلى {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "قام {actor} بتغيير لقبه إلى {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "أوقف {actor} قدرة {target} على سماع الآخرين في هذا المجتمع." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "قام {actor} بفرض مهلة على {target} حتى {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "قام {actor} بتحويل ملكية المجتمع إلى {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "أعاد {actor} تشغيل ميكروفون {target} في هذا المجتمع." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "قام {actor} بإيقاف تشغيل ميكروفون {target} في هذا المجتمع." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "قام {actor} بإلغاء حظر {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "ألغى {actor} حظر {targetMember}." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "قام {actor} بإلغاء تثبيت رسالة في {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "قام {actor} بإلغاء تثبيت رسالة." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "ألغى {actor} تثبيت رسالة{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "قام {actor} بتحديث {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "حدّث {actor} {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "قام {actor} بتحديث ملصق." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "قام {actor} بتحديث ويب هوك." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "قام {actor} بتحديث رمز تعبيري." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "حدّث {actor} أذونات القناة لـ {targetEntity} في {channelNode}." @@ -204,35 +836,112 @@ msgstr "حدّث {actor} أذونات القناة لـ {targetEntity}." msgid "{actor} updated roles for {targetMember}." msgstr "حدّث {actor} أدوار {targetMember}." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "قام {actor} بتحديث الفئة {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "قام {actor} بتحديث القناة {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "حدّث {actor} القناة {namedTarget}." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "حدّث {actor} إعدادات المجتمع." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "قام {actor} بتحديث الرمز التعبيري {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "حدّث {actor} الرمز التعبيري {namedTarget}." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "قام {actor} بتحديث الدعوة {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "حدّث {actor} الدعوة {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "قام {actor} بتحديث قناة الرابط {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "قام {actor} بتحديث تجاوز الإذن لـ {user} في {channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "قام {actor} بتحديث تجاوز الإذن لـ @everyone في {channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "قام {actor} بتحديث تجاوز الإذن للدور {role} في {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "حدّث {actor} الدور {namedTarget}." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "قام {actor} بتحديث دور {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "قام {actor} بتحديث الأدوار لـ {target}." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "قام {actor} بتحديث الملصق {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "حدّث {actor} الملصق {namedTarget}." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "قام {actor} بتحديث القناة النصية {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "قام {actor} بتحديث القناة الصوتية {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "قام {actor} بتحديث الويب هوك {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "حدّث {actor} الويب هوك {namedTarget}." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "قام {actor} بتحديث ملفه الشخصي في المجتمع." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, zero {# عنصر} one {عنصر واحد} two {عنصر msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, zero {# عضو} one {عضو واحد} two {عضوان} few {# أعضاء} many {# عضوًا} other {# عضو}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, zero {# إذن إضافي} one {# إذن إضافي} two {# إذنان إضافيان} few {# أذونات إضافية} many {# إذنًا إضافيًا} other {# إذن إضافي}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, zero {# مجتمع مشترك} one {مجتمع مشترك واحد} two {مجتمعان مشتركان} few {# مجتمعات مشتركة} many {# مجتمعًا مشتركًا} other {# مجتمع مشترك}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, zero {إظهار # جهاز} one {إظهار جهاز و msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, zero {تسجيل الخروج من # جهاز} one {تسجيل الخروج من جهاز واحد} two {تسجيل الخروج من جهازين} few {تسجيل الخروج من # أجهزة} many {تسجيل الخروج من # جهازًا} other {تسجيل الخروج من # جهاز}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, zero {تم تحديد الدعوة بـ # استخدام.} one {تم تحديد الدعوة بـ # استخدام.} two {تم تحديد الدعوة بـ # استخدامين.} few {تم تحديد الدعوة بـ # استخدامات.} many {تم تحديد الدعوة بـ # استخدامًا.} other {تم تحديد الدعوة بـ # استخدام.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, zero {تم استخدام الدعوة # مرة.} one {تم استخدام الدعوة # مرة.} two {تم استخدام الدعوة # مرتين.} few {تم استخدام الدعوة # مرات.} many {تم استخدام الدعوة # مرة.} other {تم استخدام الدعوة # مرة.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} إطار/ث" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "قنوات {guildName}" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "النشاط" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "سجل النشاط" @@ -2713,10 +3437,60 @@ msgstr "تمت إضافة {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "تمت إضافة {length, plural, zero {# مرجع لملفات محلية} one {مرجع ملف محلي واحد} two {مرجعين لملفين محليين} few {# مراجع لملفات محلية} many {# مرجعًا لملفات محلية} other {# مرجع لملفات محلية}}." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "تمت إضافة خلفية لتضمين الدردشة." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "تمت إضافة صورة غلاف للمجتمع." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "تمت إضافة أيقونة للمجتمع." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "تمت إضافة تحذير محتوى بالنص {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "تمت إضافة تحذير محتوى." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "تمت إضافة صورة رمزية." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "تمت إضافة صورة خلفية للدعوة." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "تمت إضافة الأدوار." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "تمت إضافة الصورة الرمزية لملف العضو الشخصي في المجتمع." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "تمت إضافة لافتة ملف العضو الشخصي في المجتمع." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "تمت إضافة الدور {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "عناصر التحكم في المحاذاة متاحة فقط على #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "جميع <0/> للأبد. بلا فواتير ولا تجديدات." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "جميع الإجراءات" @@ -3001,10 +3775,12 @@ msgstr "كل اللغات" msgid "All members" msgstr "جميع الأعضاء" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "كل الأوقات" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "جميع المستخدمين" @@ -3197,6 +3973,16 @@ msgstr "تم السماح بـ {0} وإلغاء السماح بـ {1}." msgid "Allowed {0}." msgstr "تم السماح بـ {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "تم السماح بـ {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "تم السماح لجميع الأعضاء بالإشارة إلى هذا الدور." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "المتصلون المسموح لهم" @@ -3205,15 +3991,35 @@ msgstr "المتصلون المسموح لهم" msgid "Allowed everyone to mention this role." msgstr "سُمح للجميع بالإشارة إلى هذا الدور." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "تم السماح بأسماء قنوات نصية مرنة." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "الدعوات المسموح بها" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "تم السماح للآخرين بنسخ الرموز التعبيرية الخاصة بهذا المجتمع." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "تم السماح للآخرين بنسخ ملصقات هذا المجتمع." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "عمليات إعادة التوجيه المسموح بها" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "تم السماح بما يصل إلى {count, plural, zero {# اتصال} one {# اتصال} two {# اتصالين} few {# اتصالات} many {# اتصالًا} other {# اتصال}} لكل عضو." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "حظر الأعضاء" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "حظر الأعضاء من المجتمع، مع خيار حذف رسائلهم الأخيرة." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "سبب الحظر" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "حظر المستخدم" msgid "Blocked" msgstr "محظور" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "تم منع العضو من إرسال الرسائل وإضافة ردود الفعل والانضمام إلى القنوات الصوتية حتى {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "بوت" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "تمت إضافة بوت" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "تم حذف الفئة" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "الفئة ممتلئة" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "توسيط" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "في المنتصف" @@ -6298,11 +7116,183 @@ msgstr "تغيير اسم المستخدم" msgid "Changed nickname from {0} to {1}." msgstr "تم تغيير الاسم المستعار من {0} إلى {1}." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "تم تغيير الوضع البطيء من {oldDuration} إلى {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "تم تغيير قناة AFK من {oldChannel} إلى {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "تم تغيير مهلة الخمول من {oldDuration} إلى {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "تم تغيير جودة الصوت من {oldKbps} كيلوبت في الثانية إلى {newKbps} كيلوبت في الثانية." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "تم تغيير الصورة الرمزية." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "تم تغيير معدل البت إلى {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "تم تغيير المنع المفروض على إرسال الرسائل وإضافة ردود الفعل والانضمام إلى القنوات الصوتية لينتهي في {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "تم تغيير خلفية تضمين الدردشة." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "تم تغيير صورة غلاف المجتمع." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "تم تغيير أيقونة المجتمع." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "تم تغيير الاتصالات لكل عضو من {oldCount} إلى {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "تم تغيير نص تحذير المحتوى من {oldText} إلى {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "تم تغيير أيقونة الدور المخصص." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "تم تغيير نص التحذير المخصص من {oldText} إلى {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "تم تغيير إعداد الإشعارات الافتراضي من {oldSetting} إلى {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "تم تغيير الوصف من {oldText} إلى {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "تم تغيير فلتر المحتوى الصريح من {oldFilter} إلى {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "تم تغيير محاذاة خلفية الدعوة من {oldAlignment} إلى {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "تم تغيير صورة خلفية الدعوة." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "تم تغيير الرابط من {oldUrl} إلى {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "تم تغيير الصورة الرمزية لملف العضو الشخصي في المجتمع." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "تم تغيير لافتة ملف العضو الشخصي في المجتمع." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "تم تغيير نبذة ملف العضو الشخصي في المجتمع إلى {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "تم تغيير حد سجل الرسائل من {oldDate} إلى {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "تم تغيير الاسم من {oldName} إلى {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "تم تغيير اللقب من {oldNick} إلى {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "تم تغيير لون الدور من {oldColor} إلى {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "تم تغيير أيقونة الدور من {oldEmoji} إلى {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "تم تغيير قناة النظام من {oldChannel} إلى {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "تم تغيير الموضوع من {oldText} إلى {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "تم تغيير الحد الأقصى للمستخدمين من {oldCount} إلى {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "تم تغيير عنوان URL المخصص من {oldCode} إلى {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "تم تغيير مستوى التحقق من {oldLevel} إلى {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "تم تغيير منطقة الصوت من {oldRegion} إلى {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "القناة" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "القناة أو الفئة" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "تمت إضافة تجاوز القناة" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "تمت إزالة تجاوز القناة" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "تم تحديث تجاوز القناة" @@ -7815,7 +8805,7 @@ msgstr "يُفرض إعداد \"الإشارات فقط\" على المجتمع #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "هل تريد حذف رسائلك في هذه المحادثة؟" msgid "Deleted" msgstr "تم الحذف" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "تم حذف {duration} من سجل رسائل العضو الحديثة." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "نص محذوف" msgid "Deleted your messages." msgstr "تم حذف رسائلك." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "فئة-محذوفة" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "قناة-محذوفة" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "دور-محذوف" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "تم رفض {0} وإزالة الرفض عن {1}." msgid "Denied {0}." msgstr "تم رفض {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "تم رفض {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "تم إظهار التضمينات" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "تم تمكين استنساخ الرموز التعبيرية" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "تم إنشاء رمز تعبيري" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "تم حذف الرمز التعبيري" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "خانات الرموز التعبيرية ممتلئة" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "تم تحديث الرمز التعبيري" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "تصفية حسب تاريخ إنشاء الحساب" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "تصفية حسب الإجراء" @@ -14572,18 +15587,22 @@ msgstr "تصفية حسب الأدوار" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "تصفية حسب المستخدم" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "تصفية رسائل الجميع" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "تصفية رسائل الأعضاء بدون أدوار" @@ -15890,6 +16909,11 @@ msgstr "تم منح {0} وسحب {1}." msgid "Granted {0}." msgstr "تم منح {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "تم منح {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "مرحبًا بك يا {username}! نتمنى أن تستمتع بوقت msgid "Hey, {username}, welcome aboard!" msgstr "مرحباً يا {username}، أهلاً بك!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "تم إخفاء رسائل الانضمام في قناة النظام." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "تم إخفاء تاج مالك المجتمع." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "إخفاء كاميرتك؟" msgid "Hide your own screen share?" msgstr "إخفاء مشاركة شاشتك؟" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "مرتفع" @@ -17688,7 +18724,7 @@ msgstr "دعوة" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "رمز الدعوة هو {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "تم إنشاء الدعوة" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "تم حذف الدعوة" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "الدعوة غير متاحة" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "تم تحديث الدعوة" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (الأيسر)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "محاذاة لليسار" @@ -18745,6 +19783,11 @@ msgstr "السماح لقارئات الشاشة بالإعلان عن الرس msgid "Let the community self-moderate" msgstr "ترك الإشراف للمجتمع نفسه" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "تم السماح للعضو بسماع الآخرين في هذا المجتمع مرة أخرى." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "يسمح لـ CSS المخصص بإظهار مناطق شفافة في النافذة بعد إعادة تشغيل تطبيق سطح المكتب." @@ -18815,6 +19858,16 @@ msgstr "تم الإعجاب." msgid "Likes: <0>{countLabel}" msgstr "الإعجابات: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "تم قصر الإشارة إلى هذا الدور على الأعضاء الذين لديهم إذن الإشارة إلى أي دور." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "تم تحديد القناة بـ {count, plural, zero {# مستخدم} one {# مستخدم} two {# مستخدمين} few {# مستخدمين} many {# مستخدمًا} other {# مستخدم}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "لويزيانا" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "منخفض" @@ -19204,6 +20259,11 @@ msgstr "الافتراضي في macOS" msgid "macOS permissions" msgstr "أذونات macOS" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "تم جعل القناة ترث إعداد المحتوى للبالغين." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "تم تعيين الرمز التعبيري كمتحرك." msgid "Marked emoji as static." msgstr "تم تعيين الرمز التعبيري كثابت." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "تم وضع علامة على القناة على أنها تحتوي على محتوى للبالغين." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "تم وضع علامة على القناة على أنها لا تحتوي على محتوى للبالغين." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "تم تعيين العضو كعضو دائم." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "إيقاف الوسائط" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "متوسط" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "حجم متوسط (افتراضي)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "عضو" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "إجراءات العضو {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "تم حظر العضو" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "تم قطع اتصال العضو" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "تم طرد العضو" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "قوائم الأعضاء غير متاحة مؤقتًا في هذا المجتمع" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "تم نقل العضو" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "لم يتم العثور على العضو" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "تم تحديث أدوار العضو" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "عضو منذ" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "تم إلغاء حظر العضو" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "تم تحديث العضو" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "تتم إزالة الأعضاء عند عدم الاتصال بالإنترنت ما لم يتم منحهم دورًا." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "تمت إزالة الأعضاء غير النشطين" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "يمكن للأعضاء الذين ليس لديهم إذن {readMessageHistoryPermissionLabel} عرض الرسائل المرسلة بعد هذا التاريخ." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "الأعضاء، محدد" @@ -20077,8 +21149,10 @@ msgstr "تظهر الإشارات إليك هنا لمدة {recentMentionsRetent msgid "Mentions of you show up here for {retentionDays} days." msgstr "تظهر الإشارات إليك هنا لمدة {retentionDays} أيام." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "الإشارات فقط" @@ -20104,7 +21178,7 @@ msgstr "رسالة" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "رسالة" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "تصحيح أخطاء الرسالة" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "تم حذف الرسالة" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "قائمة رسائل {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "تم تثبيت الرسالة" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "وقت الرسالة" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "تم إلغاء تثبيت الرسالة" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "الرسائل والوسائط" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "تم حذف الرسائل" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "الإشراف" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "ستظهر إجراءات الإشراف وتغييرات المجتمع هنا." @@ -20915,16 +21989,51 @@ msgstr "نقل إلى" msgid "Move to…" msgstr "نقل إلى…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "تم النقل من {oldChannel} إلى {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "تم نقل القناة من الفئة {oldCategory} إلى الفئة {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "تم نقل القناة إلى الفئة {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "تم نقل القناة إلى الفئة {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "تم نقل الدور إلى الأسفل في قائمة الأعضاء." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "تم نقل الدور إلى الأسفل في قائمة الأدوار." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "تم نقل الدور إلى الموضع {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "تم نقل الدور إلى الأعلى في قائمة الأعضاء." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "تم نقل الدور للأعلى في قائمة الأدوار." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "رسالة جديدة" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "رسائل جديدة" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "لا توجد ملفات محلية مشار إليها" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "لا توجد سجلات بعد" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "لم يتم تقديم سبب" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "لم يتم تقديم سبب." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "عدم التحويل" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "عدم التحويل" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "أداة إنشاء رابط OAuth2" msgid "Objects" msgstr "أشياء" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "أشياء" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "إيقاف" @@ -23523,6 +24636,21 @@ msgstr "تعذّر تحميل الرسالة الأصلية" msgid "Original message was deleted" msgstr "تم حذف الرسالة الأصلية" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "تم حظر العضو أصلاً بواسطة {user} في {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "تم حظر العضو أصلاً بواسطة {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "تم حظر العضو أصلاً في {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "متوقفة مؤقتًا بسبب تقليل الحركة. فعّل ه msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "متوقفة مؤقتًا بسبب تقليل الحركة. فعّل هذا الخيار لمواصلة تشغيل صور GIF." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "تم إيقاف الدعوات مؤقتًا." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "احذف حسابك وجميع البيانات المرتبطة به ن msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "إزالة الرسائل التي أرسلتها نهائيًا من الرسائل المباشرة والمحادثات الجماعية والمجتمعات. تتم العملية في الخلفية، وستصلك رسالة مباشرة عند انتهائها." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "تمت إضافة تجاوز الإذن" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "تمت إزالة تجاوز الإذن" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "تم تحديث تجاوز الإذن" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "هل أنت مستعد للترقية؟" msgid "Real-time" msgstr "الوقت الفعلي" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "السبب" @@ -26291,26 +27440,166 @@ msgstr "تمت إزالة الدور {oldLabel}." msgid "Removed roles." msgstr "تمت إزالة الأدوار." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "تمت إزالة قناة AFK." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "تمت إزالة الصورة الرمزية." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "تمت إزالة القناة من فئتها." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "تمت إزالة القناة من الفئة {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "تمت إزالة خلفية تضمين الدردشة." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "تمت إزالة صورة غلاف المجتمع." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "تمت إزالة أيقونة المجتمع." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "تمت إزالة نص تحذير المحتوى." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "تمت إزالة تحذير المحتوى." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "تمت إزالة أيقونة الدور المخصصة." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "تمت إزالة نص التحذير المخصص." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "تمت إزالة الوصف {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "تمت إزالة صورة خلفية الدعوة." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "تمت إزالة الرابط." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "تمت إزالة لون التمييز لملف العضو الشخصي في المجتمع." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "تمت إزالة الصورة الرمزية لملف العضو الشخصي في المجتمع." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "تمت إزالة لافتة ملف العضو الشخصي في المجتمع." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "تمت إزالة نبذة ملف العضو الشخصي في المجتمع." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "تمت إزالة ضمائر ملف العضو الشخصي في المجتمع." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "تمت إزالة حد سجل الرسائل." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "تمت إزالة اللقب {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "تمت إزالة التجاوز لـ {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "تمت إزالة الدور {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "تمت إزالة لون الدور." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "تمت إزالة أيقونة الدور." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "تمت إزالة قناة القواعد." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "تمت إزالة قناة النظام." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "تمت إزالة المهلة." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "تمت إزالة الموضوع {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "تمت إزالة رمز يونيكود التعبيري." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "تمت إزالة حد المستخدمين." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "تمت إزالة عنوان URL المخصص {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "تمت إزالة المهلة عن {targetUserTag}" @@ -26381,6 +27670,11 @@ msgstr "تمت إعادة تسمية الملصق إلى {0}." msgid "Renamed the channel to {0}." msgstr "تمت إعادة تسمية القناة إلى {0}." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "تم تغيير اسم المجتمع من {oldName} إلى {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "يشترط على المشرفين تفعيل المصادقة الثن msgid "Required" msgstr "مطلوب" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "تم طلب المصادقة الثنائية لإجراءات الإشراف." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "إعادة تعيين التباعد" msgid "Reset the connection limit." msgstr "أُعيد تعيين حد الاتصالات." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "تمت إعادة تعيين موضع قائمة الأعضاء للدور." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "قُصرت الإشارة إلى هذا الدور على الأعضاء msgid "Resubscribe" msgstr "إعادة الاشتراك" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "تم استئناف الدعوات." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "العودة إلى تسجيل الدخول" @@ -27330,6 +28639,11 @@ msgstr "هل تريد إلغاء هذه الدعوة؟ لا يمكن الترا msgid "Revoked {0}." msgstr "تم سحب {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "تم إلغاء {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (الأيمن)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "محاذاة لليمين" @@ -27408,7 +28724,7 @@ msgstr "نغمة الرنين" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "الدور" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "لون الدور" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "تم إنشاء الدور" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "تم إنشاء الدور بنجاح" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "تم حذف الدور" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "اسم الدور مطلوب" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "تم تحديث الدور" @@ -28930,11 +30246,21 @@ msgstr "الجلسات" msgid "Set {fieldNode} to {0}." msgstr "تم تعيين {fieldNode} إلى {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "تم تعيين أيقونة مخصصة للدور." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "تعيين حالة مخصصة" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "تم تعيين موضع في قائمة الأعضاء للدور." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "تم تعيين لون الدور إلى <0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "تم تعيين الوضع البطيء إلى {0} {seconds, plural, zero {ثانية} one {ثانية} two {ثانية} few {ثوانٍ} many {ثانية} other {ثانية}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "تم تعيين الوضع البطيء على {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "تعيين الحالة" msgid "Set the AFK channel to {0}." msgstr "تم تعيين قناة الخمول (AFK) إلى {0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "تم تعيين قناة AFK إلى {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "تم تعيين مهلة الخمول إلى {0} ثانية." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "تم ضبط جودة الصوت على {kbps} كيلوبت في الثانية." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "تم تعيين نوع القناة إلى {0}." msgid "Set the connection limit to {0}." msgstr "تم تعيين حد الاتصالات إلى {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "تم تعيين نص تحذير المحتوى إلى {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "تم تعيين نص التحذير المخصص إلى {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "تم تعيين الوصف إلى {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "تم تعيين محاذاة خلفية الدعوة إلى {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "تم تعيين الرابط إلى {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "تم تعيين لون التمييز لملف العضو الشخصي في المجتمع إلى {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "تم تعيين نبذة ملف العضو الشخصي في المجتمع إلى {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "تم تعيين ضمائر ملف العضو الشخصي في المجتمع إلى {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "تم تعيين حد سجل الرسائل إلى {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "تم تعيين اللقب إلى {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "عيّن اسم المنتج العام ولون السمة والصور التي تعرضها تطبيقات العميل." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "تم تعيين لون الدور إلى {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "تم تعيين أيقونة الدور إلى {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "تم تعيين قناة القواعد إلى {0}." msgid "Set the system channel to {0}." msgstr "تم تعيين قناة النظام إلى {0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "تم تعيين قناة النظام إلى {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "تم تعيين الموضوع إلى {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "تم تعيين حد المستخدمين إلى {0}." msgid "Set the vanity URL to {0}." msgstr "تم تعيين عنوان URL المخصص إلى {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "تم تعيين عنوان URL المخصص إلى {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "تم تعيين منطقة الصوت إلى {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "تم تعيين منطقة الصوت إلى تلقائي." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "إظهار لافتة ملفك الشخصي العام في هذا ال msgid "Show your Visionary as a regular subscription instead" msgstr "إظهار اشتراكك في Visionary كاشتراك عادي بدلاً من ذلك" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "تم عرض الأعضاء الذين لديهم هذا الدور في قسم خاص بهم في قائمة الأعضاء." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "حدث خطأ أثناء إصدار استرداد المبلغ. تواصل مع الدعم إذا تكررت المشكلة." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "حدث خطأ أثناء تحميل سجل النشاط." @@ -31105,6 +32531,11 @@ msgstr "بدء مكالمة صوتية" msgid "Start with computer" msgstr "التشغيل مع بدء الكمبيوتر" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "بدأ عرض الأعضاء الذين لديهم هذا الدور بشكل منفصل." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "ملصق" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "تعذر ضغط الملصق بالقدر الكافي" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "تم إنشاء الملصق" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "تم حذف الملصق" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "خانات الملصقات ممتلئة" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "تم تحديث الملصق" @@ -31412,6 +32843,46 @@ msgstr "إيقاف مشاهدة البث" msgid "Stop." msgstr "توقف." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "تم إيقاف السماح بأسماء قنوات نصية مرنة." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "تم إيقاف السماح للآخرين بنسخ الرموز التعبيرية الخاصة بهذا المجتمع." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "تم إيقاف السماح للآخرين بنسخ ملصقات هذا المجتمع." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "تم إيقاف عرض الأعضاء الذين لديهم هذا الدور بشكل منفصل." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "تم إيقاف إخفاء رسائل الانضمام في قناة النظام." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "تم إيقاف إخفاء تاج مالك المجتمع." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "تم إيقاف طلب المصادقة الثنائية لإجراءات الإشراف." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "تم منع العضو من سماع الآخرين في هذا المجتمع." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "مزامنة مع الفئة" msgid "Syntax highlighting" msgstr "تمييز بناء الجملة" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "النظام" @@ -32449,6 +33922,16 @@ msgstr "تعطل التطبيق. جارٍ البحث عن تحديثات قد ت msgid "The app should now be signed in to your account." msgstr "من المفترض أن يكون التطبيق قد سجّل الدخول إلى حسابك الآن." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "لقد انتهت مدة الحظر بالفعل في {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "كان من المقرر أن تنتهي مدة الحظر في {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "تمت إضافة البوت إلى <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "تم تنزيل تحديث سطح المكتب. أعد تشغيل {produ msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "حُفظ الملف الذي تم تنزيله على جهاز الكمبيوتر. ثبّته باستخدام مدير الحزم الذي تستخدمه عادةً." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "تم تحميل الرمز التعبيري بواسطة {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "يحتوي الملف على رمز التحقق الذي سنجلبه من <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "الملف الذي تحاول تحميله يتجاوز الحد الأ msgid "The following people can't be added to this group DM:" msgstr "لا يمكن إضافة الأشخاص التالين إلى هذه المحادثة الجماعية:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "تم إنشاء الدعوة بواسطة {user} في {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "تم إنشاء الدعوة بواسطة {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "تم إنشاء الدعوة في {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "لم يتم استخدام الدعوة مطلقًا." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "كان من المقرر أن تنتهي صلاحية الدعوة في {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "تم تعيين الدعوة للسماح باستخدامات غير محدودة." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "تم تعيين انتهاء صلاحية الدعوة بعد {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "تم تعيين الدعوة لمنح عضوية مؤقتة." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "تم تعيين الدعوة لعدم انتهاء صلاحيتها أبدًا." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "اللغة التي يتحدثها معظم أفراد مجتمعك. تُستخدم لتصفية نتائج الاكتشاف." @@ -32518,6 +34051,11 @@ msgstr "قد يظل الرابط يعمل. حاول مرة أخرى بعد قل msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "تم إلغاء التحقق من المحتوى للبالغين. يمكنك إغلاق علامة التبويب هذه والمحاولة مرة أخرى من التطبيق." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "لم يعد العضو مؤقتًا." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "السعر الجديد مجدول بالفعل ليبدأ في {effecti msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "ستستخدم القناة الصوتية الجديدة الأذونات وحد المستخدمين ومعدل البت نفسها المستخدمة في <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "سمح التجاوز بـ {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "رفض التجاوز {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "الصفحة التي تبحث عنها غير موجودة أو تم نقلها." @@ -32565,6 +34113,11 @@ msgstr "عنوان redirect_uri المقدّم غير مسجّل لهذا الت msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "يجب أن يستخدم عنوان redirect_uri المقدّم بروتوكول HTTP أو HTTPS." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "منح الدور {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "تم تحميل الملصق كملصق متحرك." msgid "The sticker was uploaded as static." msgstr "تم تحميل الملصق كملصق ثابت." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "تم تحميل الملصق بواسطة {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "منح النظام {target} دور {role}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "أزال النظام دور {role} من {target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "اسم المستخدم <0>{fluxerTag} مُستخدَم بالفعل msgid "The verification code is invalid or expired." msgstr "رمز التحقق غير صالح أو انتهت صلاحيته." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "تم إنشاء الويب هوك بواسطة {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "هذه البطاقة لا تتطابق مع بلد الفوترة الخاص بك، لذا لا يمكن استخدامها بهذه العملة المحلية. استخدم بطاقة محلية، أو عد إلى {productName} واختر طريقة دفع أخرى." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "تحتوي هذه الفئة بالفعل على الحد الأقصى من القنوات وهو {maxChannelsPerCategory}." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "تتبع إجراءات المشرفين في جميع أنحاء المجتمع." @@ -33953,6 +35526,11 @@ msgstr "هل تريد نقل ملكية المجموعة إلى {userName}؟" msgid "Transfer ownership" msgstr "نقل الملكية" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "تم نقل ملكية المجتمع إلى {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "تشغيل خصوصية البث" msgid "Turn text smileys into emoji" msgstr "تحويل الوجوه النصية إلى رموز تعبيرية" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "تم إيقاف المحتوى للبالغين." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "تم إيقاف الوضع البطيء." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "تم إيقاف تحذير المحتوى." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "تم تعطيل اللافتة المنفصلة." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "تم إيقاف تشغيل ميكروفون العضو في هذا المجتمع." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "تم تفعيل المحتوى للبالغين." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "تم تشغيل تحذير المحتوى." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "تم تفعيل اللافتة المنفصلة." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "تمت إعادة تشغيل ميكروفون العضو في هذا المجتمع." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "قد يؤدي إيقاف بعض النطاقات إلى عدم عمل التطبيق بشكل صحيح." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "الأوكرانية" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "تعذر تحميل سجل النشاط" @@ -34859,6 +36482,7 @@ msgstr "هدف غير معروف" msgid "unknown user" msgstr "مستخدم غير معروف" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "مستخدم غير معروف" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "يُستخدم في هذا المجتمع فقط." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "فيرمونت" msgid "Version" msgstr "الإصدار" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "مرتفع جدًا" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "كاميرا الويب" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "ويب هوك" @@ -37681,13 +39308,13 @@ msgstr "ويب هوك {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "تم إنشاء الويب هوك" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "تم حذف الويب هوك" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "اسم الويب هوك" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "تم تحديث الويب هوك" diff --git a/fluxer_app/src/features/i18n/locales/auto-i18n-reviewed-unchanged.json b/fluxer_app/src/features/i18n/locales/auto-i18n-reviewed-unchanged.json index 67513a5b6..43f0447bc 100644 --- a/fluxer_app/src/features/i18n/locales/auto-i18n-reviewed-unchanged.json +++ b/fluxer_app/src/features/i18n/locales/auto-i18n-reviewed-unchanged.json @@ -38,6 +38,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "hCaptcha" }, @@ -106,6 +115,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "hCaptcha" }, @@ -288,6 +306,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "emoji {emojiName}" }, @@ -709,6 +736,15 @@ { "msgid": "Zoom" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "emoji {emojiName}" }, @@ -739,6 +775,9 @@ { "msgid": "video" }, + { + "msgid": "{actor} banned {target}." + }, { "msgid": "{count, plural, one {# emoji} other {# emojis}}" }, @@ -1086,6 +1125,15 @@ { "msgid": "YubiKey" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "hCaptcha" }, @@ -1256,6 +1304,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "hCaptcha" }, @@ -1320,6 +1377,36 @@ { "msgid": "Add new reactions to messages in this channel." }, + { + "msgid": "Added a chat embed background." + }, + { + "msgid": "Added a community banner." + }, + { + "msgid": "Added a community icon." + }, + { + "msgid": "Added a content warning with the text {text}." + }, + { + "msgid": "Added a content warning." + }, + { + "msgid": "Added an avatar." + }, + { + "msgid": "Added an invite background." + }, + { + "msgid": "Added the member's community profile avatar." + }, + { + "msgid": "Added the member's community profile banner." + }, + { + "msgid": "Added the role {role}." + }, { "msgid": "Adds a manual audio source picker to the stream settings menu. Without it, a shared window already captures that app and a shared screen captures your desktop." }, @@ -1332,6 +1419,27 @@ { "msgid": "Allow H.265 (HEVC) for screen sharing" }, + { + "msgid": "Allowed all members to mention this role." + }, + { + "msgid": "Allowed anyone to mention this role." + }, + { + "msgid": "Allowed flexible text channel names." + }, + { + "msgid": "Allowed others to clone this community's emojis." + }, + { + "msgid": "Allowed others to clone this community's stickers." + }, + { + "msgid": "Allowed up to {count, plural, one {# connection} other {# connections}} per member." + }, + { + "msgid": "Allowed {permissions}." + }, { "msgid": "Anyone can create an account." }, @@ -1350,6 +1458,18 @@ { "msgid": "Application audio for video device shares" }, + { + "msgid": "Applied a community deafen." + }, + { + "msgid": "Applied a community mute." + }, + { + "msgid": "Applied a server deafen." + }, + { + "msgid": "Applied a server mute." + }, { "msgid": "Approval required" }, @@ -1371,6 +1491,9 @@ { "msgid": "Ban members from the community, with the option to delete their recent messages." }, + { + "msgid": "Ban reason" + }, { "msgid": "Banned {targetUserTag} from the community" }, @@ -1380,6 +1503,9 @@ { "msgid": "Be heard over other members while holding the push to talk (priority) keybind." }, + { + "msgid": "Blocked the member from sending messages, reacting and joining voice until {date}." + }, { "msgid": "Bluesky connections" }, @@ -1416,6 +1542,117 @@ { "msgid": "Change which voice region this channel uses." }, + { + "msgid": "Changed slowmode from {oldDuration} to {newDuration}." + }, + { + "msgid": "Changed the AFK channel from {oldChannel} to {newChannel}." + }, + { + "msgid": "Changed the AFK timeout from {oldDuration} to {newDuration}." + }, + { + "msgid": "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." + }, + { + "msgid": "Changed the avatar." + }, + { + "msgid": "Changed the block on sending messages, reacting and joining voice to end at {date}." + }, + { + "msgid": "Changed the chat embed background." + }, + { + "msgid": "Changed the community avatar." + }, + { + "msgid": "Changed the community banner." + }, + { + "msgid": "Changed the community bio to {text}." + }, + { + "msgid": "Changed the community icon." + }, + { + "msgid": "Changed the community profile avatar." + }, + { + "msgid": "Changed the community profile bio to {text}." + }, + { + "msgid": "Changed the connections per member from {oldCount} to {newCount}." + }, + { + "msgid": "Changed the content warning text from {oldText} to {newText}." + }, + { + "msgid": "Changed the custom role icon." + }, + { + "msgid": "Changed the custom warning text from {oldText} to {newText}." + }, + { + "msgid": "Changed the default notification setting from {oldSetting} to {newSetting}." + }, + { + "msgid": "Changed the description from {oldText} to {newText}." + }, + { + "msgid": "Changed the explicit content filter from {oldFilter} to {newFilter}." + }, + { + "msgid": "Changed the invite background alignment from {oldAlignment} to {newAlignment}." + }, + { + "msgid": "Changed the invite background." + }, + { + "msgid": "Changed the link from {oldUrl} to {newUrl}." + }, + { + "msgid": "Changed the member's community profile avatar." + }, + { + "msgid": "Changed the member's community profile bio to {text}." + }, + { + "msgid": "Changed the message history threshold from {oldDate} to {newDate}." + }, + { + "msgid": "Changed the name from {oldName} to {newName}." + }, + { + "msgid": "Changed the nickname from {oldNick} to {newNick}." + }, + { + "msgid": "Changed the role icon from {oldEmoji} to {newEmoji}." + }, + { + "msgid": "Changed the system channel from {oldChannel} to {newChannel}." + }, + { + "msgid": "Changed the timeout end date to {date}." + }, + { + "msgid": "Changed the timeout to end on {date}." + }, + { + "msgid": "Changed the topic from {oldText} to {newText}." + }, + { + "msgid": "Changed the user limit from {oldCount} to {newCount}." + }, + { + "msgid": "Changed the vanity URL from {oldCode} to {newCode}." + }, + { + "msgid": "Changed the verification level from {oldLevel} to {newLevel}." + }, + { + "msgid": "Changed the voice region from {oldRegion} to {newRegion}." + }, { "msgid": "Choices" }, @@ -1521,9 +1758,18 @@ { "msgid": "Delete user" }, + { + "msgid": "Deleted their messages from the last {duration}." + }, + { + "msgid": "Deleted {duration} of the member's recent message history." + }, { "msgid": "Denied" }, + { + "msgid": "Denied {permissions}." + }, { "msgid": "Desktop audio isn't available right now on Linux." }, @@ -1542,6 +1788,9 @@ { "msgid": "Disable translation DOM guard" }, + { + "msgid": "Displayed members with this role separately." + }, { "msgid": "Drag members between voice channels they can access, and disconnect them from voice." }, @@ -1638,6 +1887,9 @@ { "msgid": "Granted" }, + { + "msgid": "Granted {permissions}." + }, { "msgid": "H.265 (requires opt-in)" }, @@ -1647,6 +1899,12 @@ { "msgid": "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMAIN}." }, + { + "msgid": "Hid join messages in the system channel." + }, + { + "msgid": "Hid the community owner crown." + }, { "msgid": "How much of the member's recent message history to delete." }, @@ -1719,18 +1977,45 @@ { "msgid": "Let people search and send GIFs powered by Klipy." }, + { + "msgid": "Let the member hear others in this community again." + }, { "msgid": "Lightweight classic filter, works on any device." }, + { + "msgid": "Limited mentions of this role to members with permission to mention any role." + }, + { + "msgid": "Limited the channel to {count, plural, one {# user} other {# users}}." + }, { "msgid": "Loading instance configuration" }, { "msgid": "Logo" }, + { + "msgid": "Made the channel follow the mature content setting of its category or the community." + }, + { + "msgid": "Made the channel inherit its mature content setting." + }, { "msgid": "Make the instance yours" }, + { + "msgid": "Marked the channel as containing mature content." + }, + { + "msgid": "Marked the channel as mature." + }, + { + "msgid": "Marked the channel as not containing mature content." + }, + { + "msgid": "Marked the channel as not mature." + }, { "msgid": "May cause compatibility issues for viewers. We’re working on improving this." }, @@ -1746,6 +2031,36 @@ { "msgid": "Mirror tiers" }, + { + "msgid": "Moved from {oldCategory} to {newCategory}." + }, + { + "msgid": "Moved from {oldChannel} to {newChannel}." + }, + { + "msgid": "Moved into {category}." + }, + { + "msgid": "Moved out of {category}." + }, + { + "msgid": "Moved the channel from the category {oldCategory} to the category {newCategory}." + }, + { + "msgid": "Moved the channel into the category {category}." + }, + { + "msgid": "Moved the role down in the member list." + }, + { + "msgid": "Moved the role down in the role list." + }, + { + "msgid": "Moved the role up in the member list." + }, + { + "msgid": "Moved the role up in the role list." + }, { "msgid": "Mute other members in this voice channel for everyone." }, @@ -1809,6 +2124,15 @@ { "msgid": "Ordered upload" }, + { + "msgid": "Originally banned by {user} on {date}." + }, + { + "msgid": "Originally banned by {user}." + }, + { + "msgid": "Originally banned on {date}." + }, { "msgid": "Our phone number check is down right now. This is on us, not your number. Wait a few minutes and try the same number again." }, @@ -1821,6 +2145,15 @@ { "msgid": "Per-window audio isn't available right now on macOS." }, + { + "msgid": "Permission override added" + }, + { + "msgid": "Permission override removed" + }, + { + "msgid": "Permission override updated" + }, { "msgid": "Pick application audio while sharing a video device on Linux" }, @@ -1896,12 +2229,123 @@ { "msgid": "Remove members from the community. They can rejoin with a new invite." }, + { + "msgid": "Removed the AFK channel." + }, + { + "msgid": "Removed the avatar." + }, + { + "msgid": "Removed the channel from the category {category}." + }, + { + "msgid": "Removed the chat embed background." + }, + { + "msgid": "Removed the community avatar." + }, + { + "msgid": "Removed the community banner." + }, + { + "msgid": "Removed the community bio." + }, + { + "msgid": "Removed the community deafen." + }, + { + "msgid": "Removed the community icon." + }, + { + "msgid": "Removed the community mute." + }, + { + "msgid": "Removed the community profile avatar." + }, + { + "msgid": "Removed the community profile bio." + }, + { + "msgid": "Removed the community profile pronouns." + }, + { + "msgid": "Removed the community pronouns." + }, + { + "msgid": "Removed the content warning text." + }, + { + "msgid": "Removed the content warning." + }, + { + "msgid": "Removed the custom role icon." + }, + { + "msgid": "Removed the custom warning text." + }, + { + "msgid": "Removed the description {text}." + }, + { + "msgid": "Removed the invite background." + }, + { + "msgid": "Removed the link." + }, + { + "msgid": "Removed the member's community profile avatar." + }, + { + "msgid": "Removed the member's community profile bio." + }, + { + "msgid": "Removed the member's community profile pronouns." + }, + { + "msgid": "Removed the message history threshold." + }, + { + "msgid": "Removed the nickname {nick}." + }, + { + "msgid": "Removed the override for {permissions}." + }, + { + "msgid": "Removed the role icon." + }, + { + "msgid": "Removed the role {role}." + }, + { + "msgid": "Removed the server deafen." + }, + { + "msgid": "Removed the server mute." + }, + { + "msgid": "Removed the timeout." + }, + { + "msgid": "Removed the topic {text}." + }, + { + "msgid": "Removed the vanity URL {code}." + }, { "msgid": "Removed timeout from {targetUserTag}" }, { "msgid": "Removing the timeout will allow <0>{targetUserTag} to send messages, react, and join voice channels again." }, + { + "msgid": "Renamed the community from {oldName} to {newName}." + }, + { + "msgid": "Required 2FA for moderation actions." + }, + { + "msgid": "Reset the member list position for the role." + }, { "msgid": "Resize expression picker from bottom left" }, @@ -1974,6 +2418,9 @@ { "msgid": "Resize sidebar" }, + { + "msgid": "Resumed invites." + }, { "msgid": "Review" }, @@ -1986,6 +2433,9 @@ { "msgid": "Review your choices below, then finish. This saves the configuration, opens the instance, and reloads the app." }, + { + "msgid": "Revoked {permissions}." + }, { "msgid": "Run the instance as one community instead of many. This can only be enabled now, during setup." }, @@ -2040,6 +2490,90 @@ { "msgid": "Serial send" }, + { + "msgid": "Set a community avatar." + }, + { + "msgid": "Set a community banner." + }, + { + "msgid": "Set a community profile avatar." + }, + { + "msgid": "Set a community profile banner." + }, + { + "msgid": "Set a custom role icon." + }, + { + "msgid": "Set a member list position for the role." + }, + { + "msgid": "Set mature content to follow the community setting." + }, + { + "msgid": "Set slowmode to {duration}." + }, + { + "msgid": "Set the AFK channel to {channel}." + }, + { + "msgid": "Set the audio quality to {kbps} kbps." + }, + { + "msgid": "Set the community bio to {text}." + }, + { + "msgid": "Set the community profile bio to {text}." + }, + { + "msgid": "Set the community profile pronouns to {text}." + }, + { + "msgid": "Set the community pronouns to {text}." + }, + { + "msgid": "Set the content warning text to {text}." + }, + { + "msgid": "Set the custom warning text to {text}." + }, + { + "msgid": "Set the description to {text}." + }, + { + "msgid": "Set the link to {url}." + }, + { + "msgid": "Set the member's community profile bio to {text}." + }, + { + "msgid": "Set the member's community profile pronouns to {text}." + }, + { + "msgid": "Set the message history threshold to {date}." + }, + { + "msgid": "Set the nickname to {nick}." + }, + { + "msgid": "Set the role icon to {emoji}." + }, + { + "msgid": "Set the system channel to {channel}." + }, + { + "msgid": "Set the topic to {text}." + }, + { + "msgid": "Set the vanity URL to {code}." + }, + { + "msgid": "Set the voice region to automatic." + }, + { + "msgid": "Set the voice region to {region}." + }, { "msgid": "Set this check aside" }, @@ -2097,6 +2631,9 @@ { "msgid": "Show {count, plural, one {# more filter} other {# more filters}}" }, + { + "msgid": "Showed members with this role in their own section in the member list." + }, { "msgid": "Sign-in details" }, @@ -2130,6 +2667,9 @@ { "msgid": "Something went wrong while changing your price. Please try again in a moment." }, + { + "msgid": "Started displaying members with this role separately." + }, { "msgid": "Static Neko" }, @@ -2148,6 +2688,36 @@ { "msgid": "Stop streaming" }, + { + "msgid": "Stopped allowing anyone to mention this role." + }, + { + "msgid": "Stopped allowing flexible text channel names." + }, + { + "msgid": "Stopped allowing others to clone this community's emojis." + }, + { + "msgid": "Stopped allowing others to clone this community's stickers." + }, + { + "msgid": "Stopped displaying members with this role separately." + }, + { + "msgid": "Stopped hiding join messages in the system channel." + }, + { + "msgid": "Stopped hiding the community owner crown." + }, + { + "msgid": "Stopped overriding {permissions}." + }, + { + "msgid": "Stopped requiring 2FA for moderation actions." + }, + { + "msgid": "Stopped the member from hearing others in this community." + }, { "msgid": "Stream is not keeping up" }, @@ -2184,9 +2754,54 @@ { "msgid": "That image could not be used. Try a different file." }, + { + "msgid": "The ban had already expired on {date}." + }, + { + "msgid": "The ban was scheduled to expire on {date}." + }, + { + "msgid": "The ban was set to expire on {date}." + }, { "msgid": "The camera preview is still stopping. Try streaming again in a moment." }, + { + "msgid": "The emoji was uploaded by {user}." + }, + { + "msgid": "The invite was created by {user} on {date}." + }, + { + "msgid": "The invite was created by {user}." + }, + { + "msgid": "The invite was created on {date}." + }, + { + "msgid": "The invite was never used." + }, + { + "msgid": "The invite was scheduled to expire on {date}." + }, + { + "msgid": "The invite was set to allow unlimited uses." + }, + { + "msgid": "The invite was set to expire after {duration}." + }, + { + "msgid": "The invite was set to expire on {date}." + }, + { + "msgid": "The invite was set to grant temporary membership." + }, + { + "msgid": "The invite was set to never expire." + }, + { + "msgid": "The member is no longer temporary." + }, { "msgid": "The member to target." }, @@ -2196,6 +2811,27 @@ { "msgid": "The new price is already scheduled for {effectiveDate}." }, + { + "msgid": "The override allowed {permissions}." + }, + { + "msgid": "The override denied {permissions}." + }, + { + "msgid": "The role granted {permissions}." + }, + { + "msgid": "The sticker was uploaded by {user}." + }, + { + "msgid": "The system gave {target} the role {role}." + }, + { + "msgid": "The system removed the role {role} from {target}." + }, + { + "msgid": "The webhook was created by {user}." + }, { "msgid": "These options change how people use the instance. Some can only be chosen during setup." }, @@ -2223,15 +2859,48 @@ { "msgid": "This reset link has expired. Reset links last 1 hour. Please request a new one." }, + { + "msgid": "Timed out the member until {date}." + }, + { + "msgid": "Timed out until {date}." + }, { "msgid": "Timed out {targetUserTag}" }, + { + "msgid": "Transferred community ownership to {user}." + }, { "msgid": "Turn off audio sharing for this source or try again in a moment." }, { "msgid": "Turn on a camera or share a screen in this voice channel." }, + { + "msgid": "Turned off mature content." + }, + { + "msgid": "Turned off slowmode." + }, + { + "msgid": "Turned off the content warning." + }, + { + "msgid": "Turned off the detached banner." + }, + { + "msgid": "Turned off the member's microphone in this community." + }, + { + "msgid": "Turned on mature content." + }, + { + "msgid": "Turned on the content warning." + }, + { + "msgid": "Turned the member's microphone back on in this community." + }, { "msgid": "Unable to send verification code" }, @@ -2331,6 +3000,15 @@ { "msgid": "Your subscription still ends on <0>{cancelDate}. The current price is now {listPriceNewLabel}. If you reactivate, you can switch to it from here." }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "farewell" }, @@ -2355,6 +3033,465 @@ { "msgid": "{PRODUCT_NAME} needs to restart for the title bar change to take effect." }, + { + "msgid": "{actor} added a permission override for @everyone in {channel}." + }, + { + "msgid": "{actor} added a permission override for the role {role} in {channel}." + }, + { + "msgid": "{actor} added a permission override for {user} in {channel}." + }, + { + "msgid": "{actor} added a sticker." + }, + { + "msgid": "{actor} added an emoji." + }, + { + "msgid": "{actor} added the bot {target} as a temporary member." + }, + { + "msgid": "{actor} added the bot {target}." + }, + { + "msgid": "{actor} added the emoji {emoji}." + }, + { + "msgid": "{actor} added the sticker {name}." + }, + { + "msgid": "{actor} applied a community deafen to {target}." + }, + { + "msgid": "{actor} applied a community mute to {target}." + }, + { + "msgid": "{actor} banned {target} for {duration}." + }, + { + "msgid": "{actor} banned {target}." + }, + { + "msgid": "{actor} changed the permission overrides of the category {channel}." + }, + { + "msgid": "{actor} changed the permission overrides of the channel {channel}." + }, + { + "msgid": "{actor} changed the permission overrides of the link channel {channel}." + }, + { + "msgid": "{actor} changed the permission overrides of the text channel {channel}." + }, + { + "msgid": "{actor} changed the permission overrides of the voice channel {channel}." + }, + { + "msgid": "{actor} changed the timeout end date for {target} to {date}." + }, + { + "msgid": "{actor} changed the timeout for {target} to end on {date}." + }, + { + "msgid": "{actor} changed the vanity URL from {oldCode} to {newCode}." + }, + { + "msgid": "{actor} changed their community avatar." + }, + { + "msgid": "{actor} changed their community banner." + }, + { + "msgid": "{actor} changed their community bio to {text}." + }, + { + "msgid": "{actor} changed their community profile avatar." + }, + { + "msgid": "{actor} changed their community profile banner." + }, + { + "msgid": "{actor} changed their community profile bio to {text}." + }, + { + "msgid": "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." + }, + { + "msgid": "{actor} created a webhook." + }, + { + "msgid": "{actor} created the category {channel}." + }, + { + "msgid": "{actor} created the channel {channel} in {category}." + }, + { + "msgid": "{actor} created the channel {channel}." + }, + { + "msgid": "{actor} created the invite {code} for {channel}." + }, + { + "msgid": "{actor} created the invite {code}." + }, + { + "msgid": "{actor} created the link channel {channel} in {category}." + }, + { + "msgid": "{actor} created the link channel {channel}." + }, + { + "msgid": "{actor} created the role {role}." + }, + { + "msgid": "{actor} created the text channel {channel} in {category}." + }, + { + "msgid": "{actor} created the text channel {channel}." + }, + { + "msgid": "{actor} created the voice channel {channel} in {category}." + }, + { + "msgid": "{actor} created the voice channel {channel}." + }, + { + "msgid": "{actor} created the webhook {name} in {channel}." + }, + { + "msgid": "{actor} created the webhook {name}." + }, + { + "msgid": "{actor} deleted a message in {channel}." + }, + { + "msgid": "{actor} deleted a message." + }, + { + "msgid": "{actor} deleted a sticker." + }, + { + "msgid": "{actor} deleted a webhook." + }, + { + "msgid": "{actor} deleted an emoji." + }, + { + "msgid": "{actor} deleted some messages in {channel}." + }, + { + "msgid": "{actor} deleted some messages." + }, + { + "msgid": "{actor} deleted the category {channel}." + }, + { + "msgid": "{actor} deleted the channel {channel}." + }, + { + "msgid": "{actor} deleted the emoji {emoji}." + }, + { + "msgid": "{actor} deleted the invite {code} for {channel}." + }, + { + "msgid": "{actor} deleted the invite {code}." + }, + { + "msgid": "{actor} deleted the link channel {channel}." + }, + { + "msgid": "{actor} deleted the role {role}." + }, + { + "msgid": "{actor} deleted the sticker {name}." + }, + { + "msgid": "{actor} deleted the text channel {channel}." + }, + { + "msgid": "{actor} deleted the voice channel {channel}." + }, + { + "msgid": "{actor} deleted the webhook {name}." + }, + { + "msgid": "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." + }, + { + "msgid": "{actor} deleted {count, plural, one {# message} other {# messages}}." + }, + { + "msgid": "{actor} disconnected from voice." + }, + { + "msgid": "{actor} disconnected from {channel}." + }, + { + "msgid": "{actor} disconnected {target} from voice." + }, + { + "msgid": "{actor} disconnected {target} from {channel}." + }, + { + "msgid": "{actor} gave {target} the role {role}." + }, + { + "msgid": "{actor} kicked {target}." + }, + { + "msgid": "{actor} let {target} hear others in this community again." + }, + { + "msgid": "{actor} made a change that this version of the app cannot show." + }, + { + "msgid": "{actor} moved from {oldChannel} to {newChannel}." + }, + { + "msgid": "{actor} moved the role {role} down in the member list." + }, + { + "msgid": "{actor} moved the role {role} down in the role list." + }, + { + "msgid": "{actor} moved the role {role} up in the member list." + }, + { + "msgid": "{actor} moved the role {role} up in the role list." + }, + { + "msgid": "{actor} moved to a different voice channel." + }, + { + "msgid": "{actor} moved to {channel}." + }, + { + "msgid": "{actor} moved {target} from {oldChannel} to {newChannel}." + }, + { + "msgid": "{actor} moved {target} to a different voice channel." + }, + { + "msgid": "{actor} moved {target} to {channel}." + }, + { + "msgid": "{actor} paused invites." + }, + { + "msgid": "{actor} pinned a message in {channel}." + }, + { + "msgid": "{actor} pinned a message." + }, + { + "msgid": "{actor} removed the community deafen from {target}." + }, + { + "msgid": "{actor} removed the community mute from {target}." + }, + { + "msgid": "{actor} removed the nickname {nick} from {target}." + }, + { + "msgid": "{actor} removed the permission override for @everyone from {channel}." + }, + { + "msgid": "{actor} removed the permission override for the role {role} from {channel}." + }, + { + "msgid": "{actor} removed the permission override for {user} from {channel}." + }, + { + "msgid": "{actor} removed the role {role} from {target}." + }, + { + "msgid": "{actor} removed the server deafen from {target}." + }, + { + "msgid": "{actor} removed the server mute from {target}." + }, + { + "msgid": "{actor} removed the timeout for {target}." + }, + { + "msgid": "{actor} removed the vanity URL {code}." + }, + { + "msgid": "{actor} removed their community avatar." + }, + { + "msgid": "{actor} removed their community banner." + }, + { + "msgid": "{actor} removed their community bio." + }, + { + "msgid": "{actor} removed their community profile avatar." + }, + { + "msgid": "{actor} removed their community profile banner." + }, + { + "msgid": "{actor} removed their community profile bio." + }, + { + "msgid": "{actor} removed their community profile pronouns." + }, + { + "msgid": "{actor} removed their community pronouns." + }, + { + "msgid": "{actor} removed their nickname {nick}." + }, + { + "msgid": "{actor} renamed the community from {oldName} to {newName}." + }, + { + "msgid": "{actor} renamed the emoji {oldEmoji} to {newEmoji}." + }, + { + "msgid": "{actor} renamed the role {oldName} to {newName}." + }, + { + "msgid": "{actor} renamed the sticker {oldName} to {newName}." + }, + { + "msgid": "{actor} renamed the webhook {oldName} to {newName}." + }, + { + "msgid": "{actor} reset the member list position for the role {role}." + }, + { + "msgid": "{actor} resumed invites." + }, + { + "msgid": "{actor} server deafened {target}." + }, + { + "msgid": "{actor} server muted {target}." + }, + { + "msgid": "{actor} set a community avatar." + }, + { + "msgid": "{actor} set a community banner." + }, + { + "msgid": "{actor} set a community profile avatar." + }, + { + "msgid": "{actor} set a community profile banner." + }, + { + "msgid": "{actor} set a member list position for the role {role}." + }, + { + "msgid": "{actor} set the nickname of {target} to {nick}." + }, + { + "msgid": "{actor} set the vanity URL to {code}." + }, + { + "msgid": "{actor} set their community bio to {text}." + }, + { + "msgid": "{actor} set their community profile avatar." + }, + { + "msgid": "{actor} set their community profile banner." + }, + { + "msgid": "{actor} set their community profile bio to {text}." + }, + { + "msgid": "{actor} set their community profile pronouns to {text}." + }, + { + "msgid": "{actor} set their community pronouns to {text}." + }, + { + "msgid": "{actor} stopped {target} from hearing others in this community." + }, + { + "msgid": "{actor} timed out {target} until {date}." + }, + { + "msgid": "{actor} transferred community ownership to {user}." + }, + { + "msgid": "{actor} turned off {target}'s microphone in this community." + }, + { + "msgid": "{actor} turned {target}'s microphone back on in this community." + }, + { + "msgid": "{actor} unbanned {target}." + }, + { + "msgid": "{actor} unpinned a message in {channel}." + }, + { + "msgid": "{actor} unpinned a message." + }, + { + "msgid": "{actor} updated a sticker." + }, + { + "msgid": "{actor} updated a webhook." + }, + { + "msgid": "{actor} updated an emoji." + }, + { + "msgid": "{actor} updated the category {channel}." + }, + { + "msgid": "{actor} updated the channel {channel}." + }, + { + "msgid": "{actor} updated the emoji {emoji}." + }, + { + "msgid": "{actor} updated the invite {code}." + }, + { + "msgid": "{actor} updated the link channel {channel}." + }, + { + "msgid": "{actor} updated the permission override for @everyone in {channel}." + }, + { + "msgid": "{actor} updated the permission override for the role {role} in {channel}." + }, + { + "msgid": "{actor} updated the permission override for {user} in {channel}." + }, + { + "msgid": "{actor} updated the role {role}." + }, + { + "msgid": "{actor} updated the roles of {target}." + }, + { + "msgid": "{actor} updated the sticker {name}." + }, + { + "msgid": "{actor} updated the text channel {channel}." + }, + { + "msgid": "{actor} updated the voice channel {channel}." + }, + { + "msgid": "{actor} updated the webhook {name}." + }, + { + "msgid": "{actor} updated their community profile." + }, + { + "msgid": "{actor} updated {target}." + }, { "msgid": "{channelHeading}, {mentionCount, plural, one {# mention} other {# mentions}}" }, @@ -2364,6 +3501,15 @@ { "msgid": "{count, plural, one {# minute} other {# minutes}}" }, + { + "msgid": "{count, plural, one {# more permission} other {# more permissions}}" + }, + { + "msgid": "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" + }, + { + "msgid": "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" + }, { "msgid": "{name} copy" }, @@ -2391,6 +3537,30 @@ { "msgid": "{remaining, plural, one {+# more} other {+# more}}" }, + { + "msgctxt": "audit-log-member-profile", + "msgid": "Changed the community banner." + }, + { + "msgctxt": "audit-log-member-profile", + "msgid": "Changed the community profile banner." + }, + { + "msgctxt": "audit-log-member-profile", + "msgid": "Changed the member's community profile banner." + }, + { + "msgctxt": "audit-log-member-profile", + "msgid": "Removed the community banner." + }, + { + "msgctxt": "audit-log-member-profile", + "msgid": "Removed the community profile banner." + }, + { + "msgctxt": "audit-log-member-profile", + "msgid": "Removed the member's community profile banner." + }, { "msgctxt": "noise-suppression-option", "msgid": "Balanced" @@ -2637,6 +3807,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "emoji {emojiName}" }, @@ -2845,6 +4024,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "emoji {emojiName}" }, @@ -3003,6 +4191,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "emoji {emojiName}" }, @@ -3415,6 +4612,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "hCaptcha" }, @@ -3580,6 +4786,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "hCaptcha" }, @@ -3642,6 +4857,15 @@ { "msgid": "YubiKey" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "hCaptcha" }, @@ -3803,6 +5027,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "emoji {emojiName}" }, @@ -3961,6 +5194,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "hCaptcha" }, @@ -4257,6 +5499,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "hCaptcha" }, @@ -4590,6 +5841,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "hCaptcha" }, @@ -4751,6 +6011,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "hCaptcha" }, @@ -4828,6 +6097,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "hCaptcha" }, @@ -4902,6 +6180,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "{fps} FPS" }, @@ -5330,6 +6617,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "emoji {emojiName}" }, @@ -5447,6 +6743,9 @@ { "msgid": "Alt" }, + { + "msgid": "Ban reason" + }, { "msgid": "Banner" }, @@ -5678,6 +6977,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "emoji {emojiName}" }, @@ -5867,6 +7175,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "hCaptcha" }, @@ -6104,6 +7421,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "emoji {emojiName}" }, @@ -6383,6 +7709,12 @@ { "msgid": "Secret" }, + { + "msgid": "Set the message history threshold to {date}." + }, + { + "msgid": "Set the role color to {color}." + }, { "msgid": "Slovenia" }, @@ -6446,6 +7778,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "emoji {emojiName}" }, @@ -6579,6 +7920,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "hCaptcha" }, @@ -6824,6 +8174,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "emoji {emojiName}" }, @@ -6962,6 +8321,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "hCaptcha" }, @@ -7111,6 +8479,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "hCaptcha" }, @@ -7211,6 +8588,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "hCaptcha" }, @@ -7378,6 +8764,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "hCaptcha" }, @@ -7468,6 +8863,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "hCaptcha" }, @@ -7563,6 +8967,15 @@ { "msgid": "cron" }, + { + "msgid": "deleted-category" + }, + { + "msgid": "deleted-channel" + }, + { + "msgid": "deleted-role" + }, { "msgid": "hCaptcha" }, diff --git a/fluxer_app/src/features/i18n/locales/bg/messages.po b/fluxer_app/src/features/i18n/locales/bg/messages.po index d79d229e6..4695bee4d 100644 --- a/fluxer_app/src/features/i18n/locales/bg/messages.po +++ b/fluxer_app/src/features/i18n/locales/bg/messages.po @@ -56,6 +56,31 @@ msgstr "{a} пише..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} и {c} пишат..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} добави презаписване на разрешения за {user} в {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} добави презаписване на разрешения за @everyone в {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} добави презаписване на разрешения за ролята {role} в {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} добави стикер." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} добави емоджи." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} добави разрешения за {targetEntity} в {channelNode}." @@ -64,35 +89,200 @@ msgstr "{actor} добави разрешения за {targetEntity} в {channe msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} добави разрешения за {targetEntity} в канала." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} добави бота {target} като временен член." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} добави бота {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} добави бота {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} добави емоджито {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} добави емоджито {namedTarget}." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} добави стикера {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} добави стикера {namedTarget}." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} забрани {target} за {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} забрани {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} наложи забрана на {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} промени блокирането на {target} за изпращане на съобщения, реакции и присъединяване към гласови канали така, че да приключи на {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} промени прякора на {target} от {oldNick} на {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} промени презаписванията на разрешения на категорията {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} промени презаписванията на разрешения на канала {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} промени презаписванията на разрешения на канала с линкове {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} промени презаписванията на разрешения на текстовия канал {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} промени презаписванията на разрешения на гласовия канал {channel}." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} промени персонализирания URL от {oldCode} на {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} промени аватара на своя профил в общността." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} промени банера на своя профил в общността." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} промени биографията на своя профил в общността на {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} смени прякора си от {oldNick} на {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} създаде уебхук." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} създаде категорията {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} създаде канала {channel} в {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} създаде канала {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} създаде канала {namedTarget}." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} създаде поканата {code} за {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} създаде поканата {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} създаде поканата {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} създаде канала с линкове {channel} в {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} създаде канала с линкове {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} създаде ролята {namedTarget}." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} създаде ролята {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} създаде текстовия канал {channel} в {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} създаде текстовия канал {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} създаде гласовия канал {channel} в {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} създаде гласовия канал {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} създаде уебхука {name} в {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} създаде уебхука {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} създаде уебхука {namedTarget}." @@ -103,49 +293,209 @@ msgstr "{actor} създаде уебхука {namedTarget}." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} изтри {0} {bulkCount, plural, one {съобщение} other {съобщения}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} изтри {count, plural, one {# съобщение} other {# съобщения}} в {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} изтри {count, plural, one {# съобщение} other {# съобщения}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} изтри съобщение в {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} изтри съобщение." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} изтри съобщение{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} изтри стикер." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} изтри webhook." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} изтри емоджи." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} изтри няколко съобщения{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} изтри няколко съобщения в {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} изтри няколко съобщения." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} изтри категорията {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} изтри канала {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} изтри канала {namedTarget}." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} изтри емоджито {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} изтри емоджито {namedTarget}." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} изтри поканата {code} за {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} изтри поканата {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} изтри поканата {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} изтри канала с линкове {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} изтри ролята {namedTarget}." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} изтри ролята {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} изтри стикера {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} изтри стикера {namedTarget}." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} изтри текстовия канал {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} изтри гласовия канал {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} изтри уебхука {name} от {channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} изтри уебхука {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} изтри уебхука {namedTarget}." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} изключи {target} от {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} изключи {target} от гласов канал." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} изключи {targetMember} от гласовия канал." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} прекъсна връзката с {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} прекъсна връзката с гласовия чат." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} даде на {target} ролята {role}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} изгони {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} изгони {targetMember}." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} позволи на {target} отново да чува другите в тази общност." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} направи промяна, която тази версия на приложението не може да покаже." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} премести {target} от {oldChannel} в {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} премести {target} в {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} премести {target} в друг гласов канал." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} премести {targetMember} в {channelNode}." @@ -154,16 +504,68 @@ msgstr "{actor} премести {targetMember} в {channelNode}." msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} премести {targetMember} в друг гласов канал." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} се премести от {oldChannel} в {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} премести ролята {role} надолу в списъка с членове." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} премести ролята {role} надолу в списъка с роли." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} премести ролята {role} нагоре в списъка с членове." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} премести ролята {role} нагоре в списъка с роли." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} се премести в {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} се премести в друг гласов канал." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} спря поканите." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} извърши действие върху {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} закачи съобщение в {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} закачи съобщение." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} закачи съобщение{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} изчисти неактивните членове." @@ -179,19 +581,249 @@ msgstr "{actor} премахна разрешенията за {targetEntity} в msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} премахна разрешенията за {targetEntity} в канала." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} премахна прякора {nick} от {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} премахна презаписването на разрешения за {user} от {channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} премахна презаписването на разрешения за @everyone от {channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} премахна презаписването на разрешения за ролята {role} от {channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} премахна ролята {role} от {target}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} премахна времето за изчакване за {target}." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} премахна персонализирания URL адрес {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} премахна цвета на акцента от своя профил в общността." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} премахна аватара от своя профил в общността." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} премахна банера на своя профил в общността." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} премахна биографията от своя профил в общността." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} премахна местоименията от своя профил в общността." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} премахна своя прякор {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} преименува категорията от {oldName} на {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} преименува канала {oldName} на {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} преименува общността от {oldName} на {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} преименува емоджито {oldEmoji} на {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} преименува канала с линкове {oldName} на {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} преименува ролята {oldName} на {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} преименува стикера от {oldName} на {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} преименува текстовия канал {oldName} на {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} преименува гласовия канал от {oldName} на {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} преименува уебхука от {oldName} на {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} нулира позицията в списъка с членове за ролята {role}." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} възобнови поканите." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} зададе позиция в списъка с членове за ролята {role}." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} зададе прякор на {target} като {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} зададе персонализирания URL адрес на {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} промени цвета на акцента на своя профил в общността на {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} зададе аватар за своя профил в общността." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} зададе банер за своя профил в общността." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} зададе биографията на своя профил в общността на {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} зададе местоименията на своя профил в общността на {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} зададе своя прякор на {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} спря {target} да чува другите в тази общност." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} наложи време за изчакване на {target} до {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} прехвърли собствеността на общността на {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} включи отново микрофона на {target} в тази общност." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} изключи микрофона на {target} в тази общност." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} премахна забраната на {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} премахна забраната на {targetMember}." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} откачи съобщение в {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} откачи съобщение." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} открепи съобщение{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} актуализира {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} актуализира {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} актуализира стикер." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} актуализира уебхук." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} актуализира емоджи." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} актуализира разрешенията за {targetEntity} в {channelNode}." @@ -204,35 +836,112 @@ msgstr "{actor} актуализира разрешенията за {targetEnti msgid "{actor} updated roles for {targetMember}." msgstr "{actor} актуализира ролите на {targetMember}." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} актуализира категорията {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} актуализира канала {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} актуализира канала {namedTarget}." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} актуализира настройките на общността." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} актуализира емоджито {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} актуализира емоджито {namedTarget}." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} актуализира поканата {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} актуализира поканата {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} актуализира канала с линкове {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} промени презаписването на разрешения за {user} в {channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} промени презаписването на разрешения за @everyone в {channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} промени презаписването на разрешения за ролята {role} в {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} актуализира ролята {namedTarget}." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} актуализира ролята {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} актуализира ролите на {target}." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} актуализира стикера {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} актуализира стикера {namedTarget}." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} промени текстовия канал {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} промени гласовия канал {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} актуализира уебхука {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} актуализира уебхука {namedTarget}." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} актуализира своя профил в общността." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# елемент} other {# елемента}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# член} other {# членове}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {още # разрешение} other {още # разрешения}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# обща общност} other {# общи общности}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {Покажи # устройство} other {Пок msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Излизане от # устройство} other {Излизане от # устройства}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {Поканата беше ограничена до # използване.} other {Поканата беше ограничена до # използвания.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {Поканата е използвана # път.} other {Поканата е използвана # пъти.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "Канали на {guildName}" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Активност" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Дневник на активността" @@ -2713,10 +3437,60 @@ msgstr "Добави {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "{length, plural, one {Добавена е # препратка към локален файл} other {Добавени са # препратки към локални файлове}}." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "Добавен е фон за вграждане в чата." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Добавен е банер на общността." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Добавена е икона на общността." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "Добавено е предупреждение за съдържание с текст {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Добавено е предупреждение за съдържание." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "Добави аватар." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Добавен е фон за покани." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Добави роли." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Добави аватар към профила на члена в общността." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Добави банер към профила на члена в общността." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "Добавена е ролята {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Контролите за подравняване са налични #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Всички <0/>, завинаги. Без таксуване и подновявания." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Всички действия" @@ -3001,10 +3775,12 @@ msgstr "Всички езици" msgid "All members" msgstr "Всички членове" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "За цялото време" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Всички потребители" @@ -3197,6 +3973,16 @@ msgstr "Разрешен достъп за {0} и премахнато разр msgid "Allowed {0}." msgstr "Разрешено {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "Разрешени {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Позволи на всички членове да споменават тази роля." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Кой може да се обажда" @@ -3205,15 +3991,35 @@ msgstr "Кой може да се обажда" msgid "Allowed everyone to mention this role." msgstr "На всички беше разрешено да споменават тази роля." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Разрешени са гъвкави имена на текстови канали." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Разрешени покани" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Позволи на други да клонират емоджитата на тази общност." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Позволи на други да клонират стикерите на тази общност." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Разрешени пренасочвания" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Разрешени до {count, plural, one {# връзка} other {# връзки}} на член." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Забраняване на достъп на членове" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Забраняване на достъп на членове до общността, с възможност за изтриване на скорошните им съобщения." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Причина за забрана" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Блокиране на потребител" msgid "Blocked" msgstr "Блокирани" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Блокира възможността на члена да изпраща съобщения, да реагира и да се присъединява към гласови канали до {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Бот" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Ботът е добавен" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Категорията е изтрита" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Категорията е пълна" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Център" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Центрирано" @@ -6298,11 +7116,183 @@ msgstr "Промяна на потребителско име" msgid "Changed nickname from {0} to {1}." msgstr "Прякорът е променен от {0} на {1}." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Промени бавния режим от {oldDuration} на {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "Промени AFK канала от {oldChannel} на {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "Променен е таймаутът за AFK от {oldDuration} на {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "Променено е качеството на звука от {oldKbps} kbps на {newKbps} kbps." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Промени аватара." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Битрейтът е променен на {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Променено е блокирането на изпращане на съобщения, реакции и присъединяване към гласови канали, за да приключи на {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Променено е фоновото изображение на вгражданията в чата." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Промени банера на общността." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Промени иконата на общността." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "Променено е ограничението за връзки на член от {oldCount} на {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "Промени текста на предупреждението за съдържание от {oldText} на {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Променена е персонализираната икона на ролята." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Променен е персонализираният текст за предупреждение от {oldText} на {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "Променена е настройката за известия по подразбиране от {oldSetting} на {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Промени описанието от {oldText} на {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Променен е филтърът за изрично съдържание от {oldFilter} на {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Промени подравняването на фона на поканата от {oldAlignment} на {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Променено е фоновото изображение за покани." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "Промени връзката от {oldUrl} на {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Промени аватара на профила на члена в общността." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Промени банера на профила на члена в общността." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "Промени биографията на профила на члена в общността на {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "Променен е прагът на историята на съобщенията от {oldDate} на {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "Промени името от {oldName} на {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "Променен е прякорът от {oldNick} на {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Промени цвета на ролята от {oldColor} на {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Смени иконата на ролята от {oldEmoji} на {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "Промени системния канал от {oldChannel} на {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Промени темата от {oldText} на {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "Промени лимита за потребители от {oldCount} на {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "Промени персонализирания URL адрес от {oldCode} на {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Променено е нивото на потвърждение от {oldLevel} на {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "Промени гласовия регион от {oldRegion} на {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "канал" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Канал или категория" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Добавено е презаписване на канал" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Премахнато е презаписване на канал" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Актуализирано е презаписване на канал" @@ -7815,7 +8805,7 @@ msgstr "Общности с над 250 души се превключват на #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Да изтриеш ли съобщенията си в този раз msgid "Deleted" msgstr "Изтрито" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "Изтри {duration} от скорошната история на съобщенията на члена." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Изтрит текст" msgid "Deleted your messages." msgstr "Съобщенията ти са изтрити." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "изтрита-категория" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "изтрит-канал" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "изтрита-роля" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "Отказан достъп за {0} и премахнат отказ з msgid "Denied {0}." msgstr "Отказано {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "Отказани {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Вградените елементи са видими" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Клонирането на емоджи е активирано" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Емоджито е създадено" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Емоджито е изтрито" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Няма свободни слотове за емоджита" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Емоджито е актуализирано" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Филтриране по дата на създаване на акаунт" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Филтриране по действие" @@ -14572,18 +15587,22 @@ msgstr "Филтриране по роли" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Филтриране по потребител" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Филтриране на всички" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Филтриране на членове без роли" @@ -15890,6 +16909,11 @@ msgstr "Предоставени {0} и отнети {1}." msgid "Granted {0}." msgstr "Предоставени {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "Предоставени {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Здравей, {username}! Надяваме се да ти хареса msgid "Hey, {username}, welcome aboard!" msgstr "Здравей, {username}! Радваме се, че си при нас." +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Скри съобщенията за присъединяване в системния канал." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Скри короната на собственика на общността." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Да скриеш ли собствената си камера?" msgid "Hide your own screen share?" msgstr "Да скриеш ли собствения си споделен екран?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Високо" @@ -17688,7 +18724,7 @@ msgstr "Покани" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "Кодът за покана е {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Поканата е създадена" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Поканата е изтрита" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Поканата е недостъпна" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Поканата е актуализирана" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (ляв)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Подравнено отляво" @@ -18745,6 +19783,11 @@ msgstr "Позволява на екранните четци да обявяв msgid "Let the community self-moderate" msgstr "Нека общността се самомодерира" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Позволи на члена отново да чува другите в тази общност." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Позволява на персонализирания CSS да показва прозрачни зони на прозореца след рестартиране на настолното приложение." @@ -18815,6 +19858,16 @@ msgstr "Харесано." msgid "Likes: <0>{countLabel}" msgstr "Харесвания: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "Ограничи споменаването на тази роля до членове с разрешение да споменават която и да е роля." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Ограничи канала до {count, plural, one {# потребител} other {# потребители}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Луизиана" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Ниско" @@ -19204,6 +20259,11 @@ msgstr "По подразбиране за macOS" msgid "macOS permissions" msgstr "Разрешения за macOS" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Направи канала да наследява настройката си за съдържание за възрастни." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Маркира емоджи като анимирано." msgid "Marked emoji as static." msgstr "Маркира емоджи като статично." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Маркира канала за съдържание за възрастни." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Маркира канала като такъв без съдържание за възрастни." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "Маркира члена като постоянен." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Спиране на възпроизвеждането" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Средно" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Среден размер (по подразбиране)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Член" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Действия за члена {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "На члена е наложена забрана" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Членът е изключен от гласов канал" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Членът е изгонен" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Списъците с членове временно не са налични в тази общност" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Членът е преместен" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Членът не е намерен" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Ролите на члена са актуализирани" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Член от" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Забраната на члена е премахната" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Членът е актуализиран" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Членовете се премахват, когато излязат офлайн, освен ако не получат роля." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Членовете са премахнати" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "Членове без разрешение „{readMessageHistoryPermissionLabel}“ могат да виждат съобщения, изпратени след тази дата." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Членове, избрано" @@ -20077,8 +21149,10 @@ msgstr "Споменаванията за теб се показват тук {r msgid "Mentions of you show up here for {retentionDays} days." msgstr "Споменаванията за теб се показват тук {retentionDays} дни." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Само споменавания" @@ -20104,7 +21178,7 @@ msgstr "съобщение" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Съобщение" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Отстраняване на грешки в съобщението" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Съобщението е изтрито" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Списък със съобщения за {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Съобщението е закачено" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Час на съобщението" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Съобщението е откачено" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Съобщения и медия" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Съобщенията са изтрити" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Модерация" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Тук ще се показват действията за модериране и промените в общността." @@ -20915,16 +21989,51 @@ msgstr "Премести в" msgid "Move to…" msgstr "Премести в…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Преместено от {oldChannel} в {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Премести канала от категорията {oldCategory} в категорията {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Премести канала в категорията {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Премести канала в категория {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "Премести ролята надолу в списъка с членове." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "Премести ролята надолу в списъка с роли." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Премести ролята на позиция {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "Премести ролята нагоре в списъка с членове." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "Премести ролята нагоре в списъка с роли." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Ново съобщение" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Нови съобщения" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "Няма препратки към локални файлове" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Все още няма записи" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "Няма посочена причина" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "Не е посочена причина." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Без преобразуване" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Без преобразуване" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "Конструктор на OAuth2 URL" msgid "Objects" msgstr "Обекти" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Обекти" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Изкл" @@ -23523,6 +24636,21 @@ msgstr "Неуспешно зареждане на оригиналното съ msgid "Original message was deleted" msgstr "Оригиналното съобщение е изтрито" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Първоначалната забрана е наложена от {user} на {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Първоначалната забрана е наложена от {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Първоначалната забрана е наложена на {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Поставено на пауза заради намаленото д msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "Поставено на пауза заради намаленото движение. Включи, за да продължат да се възпроизвеждат GIF файловете." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Спря поканите." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Изтрий завинаги акаунта си и всички свъ msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Премахни завинаги съобщенията, изпратени от теб в DM, групови DM и общности. Процесът върви във фонов режим и ще получиш DM, когато приключи." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Добавено е презаписване на разрешения" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Премахнато е презаписване на разрешения" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Презаписването на разрешения е актуализирано" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Готов ли си за надграждане?" msgid "Real-time" msgstr "В реално време" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Причина" @@ -26291,26 +27440,166 @@ msgstr "Премахна ролята {oldLabel}." msgid "Removed roles." msgstr "Премахна роли." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "Премахна AFK канала." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Премахна аватара." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Премахна канала от категорията му." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Премахна канала от категорията {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Премахна фоновото изображение за вграждане в чата." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "Премахна банера на общността." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Премахна иконата на общността." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "Премахна текста за предупреждение за съдържание." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Премахна предупреждението за съдържание." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Премахна персонализираната икона на ролята." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Премахна персонализирания предупредителен текст." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Премахна описанието {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Премахна фоновото изображение за покани." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Премахна връзката." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Премахна акцентния цвят на профила на члена в общността." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Премахна аватара от профила на члена в общността." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Премахна банера от профила на члена в общността." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Премахна биографията от профила на члена в общността." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "Премахнати са местоименията от профила на члена в общността." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Премахна прага за историята на съобщенията." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "Премахна прякора {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "Премахна презаписването за {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "Премахната е ролята {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Премахнат е цветът на ролята." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Премахна иконата на ролята." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Премахна канала с правила." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "Премахна системния канал." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "Премахна времето за изчакване." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "Премахна темата {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Премахна емоджито Unicode." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Премахна лимита за потребители." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "Премахна персонализирания URL адрес {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Времето за изчакване за {targetUserTag} е премахнато" @@ -26381,6 +27670,11 @@ msgstr "Преименува стикера на {0}." msgid "Renamed the channel to {0}." msgstr "Преименува канала на {0}." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Преименува общността от {oldName} на {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Изискване на двуфакторно удостоверява msgid "Required" msgstr "Задължително" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "Започна да изисква 2FA за модераторски действия." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Възстановяване на разстоянието" msgid "Reset the connection limit." msgstr "Нулира ограничението за връзки." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "Нулира позицията в списъка с членове за ролята." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Споменаването на тази роля беше ограни msgid "Resubscribe" msgstr "Абониране отново" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Възобнови поканите." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Връщане към влизането" @@ -27330,6 +28639,11 @@ msgstr "Да отмениш ли тази покана? Действието е msgid "Revoked {0}." msgstr "Отнети {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "Отменени {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (десен)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Подравнено отдясно" @@ -27408,7 +28724,7 @@ msgstr "Мелодия на звънене" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Роля" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Цвят на ролята" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Ролята е създадена" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Ролята е създадена успешно" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Ролята е изтрита" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "Името на ролята е задължително" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Ролята е актуализирана" @@ -28930,11 +30246,21 @@ msgstr "Сесии" msgid "Set {fieldNode} to {0}." msgstr "Полето {fieldNode} е зададено на {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Зададе персонализирана икона за ролята." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Задаване на персонализиран статус" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Зададе позиция в списъка с членове за ролята." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "Цветът на ролята е зададен на <0>{hex} <1/>. msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "Бавният режим е зададен на {0} {seconds, plural, one {секунда} other {секунди}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Зададе бавния режим на {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Задаване на статус" msgid "Set the AFK channel to {0}." msgstr "AFK каналът е зададен на {0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "Зададе AFK канала на {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "Таймаутът за AFK е зададен на {0} секунди." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "Зададе качеството на звука на {kbps} kbps." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "Типът на канала е зададен на {0}." msgid "Set the connection limit to {0}." msgstr "Ограничението за връзки е зададено на {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "Зададе текста за предупреждение за съдържание на {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "Зададе персонализирания текст за предупреждение на {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "Зададе описанието на {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "Подравняването на фона на поканата е зададено на {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "Зададе връзката на {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "Зададен е акцентният цвят на профила на члена в общността на {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "Зададе биографията на профила на члена в общността на {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "Зададе местоименията на профила на члена в общността на {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "Зададе прага за историята на съобщенията на {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "Зададе прякора на {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Задай публичното име на продукта, цвета на темата и ресурсите с изображения, които клиентите показват." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "Зададе цвета на ролята на {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "Зададе иконата на ролята на {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "Каналът с правила е зададен на {0}." msgid "Set the system channel to {0}." msgstr "Системният канал е зададен на {0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "Зададе системния канал на {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "Зададе темата на {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "Лимитът за потребители е зададен на {0}." msgid "Set the vanity URL to {0}." msgstr "Персонализираният URL адрес е зададен на {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "Зададе персонализирания URL адрес на {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "Зададе гласовия регион на {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "Зададе гласовия регион на автоматичен." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Показва банера на глобалния ти профил в msgid "Show your Visionary as a regular subscription instead" msgstr "Показване на Visionary като обикновен абонамент" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Показа членовете с тази роля в отделна секция в списъка с членове." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Нещо се обърка при възстановяването на сумата. Свържи се с поддръжката, ако това продължава да се случва." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Възникна проблем при зареждането на дневника на активността." @@ -31105,6 +32531,11 @@ msgstr "Започване на гласово повикване" msgid "Start with computer" msgstr "Стартиране с компютъра" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "Започна показването на членовете с тази роля отделно." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "стикер" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "Стикерът не можа да бъде компресиран достатъчно" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Стикерът е създаден" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Стикерът е изтрит" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Слотовете за стикери са пълни" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Стикерът е актуализиран" @@ -31412,6 +32843,46 @@ msgstr "Спиране на гледането на потока" msgid "Stop." msgstr "Спри." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Спря да позволява гъвкави имена на текстови канали." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Спря да позволява на други да клонират емоджитата на тази общност." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Спря да позволява на други да клонират стикерите на тази общност." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Спря да показва членовете с тази роля отделно." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Спря да скрива съобщенията за присъединяване в системния канал." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Спря да крие короната на собственика на общността." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Спря да изисква 2FA за модераторски действия." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Спря члена да чува другите в тази общност." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Синхронизиране с категорията" msgid "Syntax highlighting" msgstr "Синтактично оцветяване" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "Система" @@ -32449,6 +33922,16 @@ msgstr "Приложението се срина. Проверяваме за а msgid "The app should now be signed in to your account." msgstr "Приложението вече трябва да е влязло в акаунта ти." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "Забраната вече е изтекла на {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "Забраната трябваше да изтече на {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "Ботът е добавен към <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "Актуализацията за настолното приложен msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "Изтегленият файл е запазен на компютъра ти. Инсталирай го с обичайния си мениджър на пакети." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "Емоджито е качено от {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "Файлът съдържа токена за потвърждение, който ще извлечем от <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "Файлът, който се опитваш да качиш, надви msgid "The following people can't be added to this group DM:" msgstr "Следните хора не могат да бъдат добавени към това групово DM:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "Поканата беше създадена от {user} на {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "Поканата е създадена от {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "Поканата беше създадена на {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "Поканата никога не е използвана." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "Поканата трябваше да изтече на {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "Поканата беше настроена да позволява неограничени използвания." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "Поканата беше настроена да изтече след {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "Поканата беше настроена да предоставя временно членство." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "Поканата беше настроена никога да не изтича." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "Езикът, който общността ти говори най-често. Използва се за филтриране на резултатите от Откриване." @@ -32518,6 +34051,11 @@ msgstr "Възможно е линкът все още да работи. Опи msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "Проверката за съдържание за възрастни беше отменена. Можеш да затвориш този раздел и да опиташ отново от приложението." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "Членът вече не е временен." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "Новата цена вече е насрочена за {effectiveDate msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "Новият гласов канал ще използва същите разрешения, лимит за потребители и битрейт като <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "Презаписването разрешаваше {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "Презаписването забраняваше {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "Страницата, която търсиш, не съществува или е преместена." @@ -32565,6 +34113,11 @@ msgstr "Предоставеният redirect_uri не е регистриран msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "Предоставеният redirect_uri трябва да използва HTTP или HTTPS." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "Ролята предостави {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "Стикерът беше качен като анимиран." msgid "The sticker was uploaded as static." msgstr "Стикерът беше качен като статичен." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "Стикерът е качен от {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "Системата даде на {target} ролята {role}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "Системата премахна ролята {role} от {target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "Потребителското име <0>{fluxerTag} вече е з msgid "The verification code is invalid or expired." msgstr "Кодът за потвърждение е невалиден или е изтекъл." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "Уебхукът е създаден от {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Тази карта не съответства на държавата ти за фактуриране, така че не може да се използва за тази локализирана валута. Използвай местна карта или се върни към {productName} и избери друг метод на плащане." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "Тази категория вече съдържа максималния брой от {maxChannelsPerCategory} канала." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Проследяване на действията на модераторите в общността." @@ -33953,6 +35526,11 @@ msgstr "Да се прехвърли ли собствеността на гру msgid "Transfer ownership" msgstr "Прехвърляне на собствеността" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Прехвърли собствеността на общността на {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Включване на поверителността при стрий msgid "Turn text smileys into emoji" msgstr "Превръщане на текстовите усмивки в емоджита" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Изключи съдържанието за възрастни." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Изключи бавния режим." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "Изключи предупреждението за съдържание." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Изключи разкачения банер." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Изключи микрофона на члена в тази общност." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Включи съдържанието за възрастни." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "Включи предупреждението за съдържание." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Включи разкачения банер." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "Включи отново микрофона на члена в тази общност." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Изключването на обхвати може да попречи на приложението да работи правилно." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "Украински" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Дневникът на активността не може да бъде зареден" @@ -34859,6 +36482,7 @@ msgstr "Неизвестна цел" msgid "unknown user" msgstr "неизвестен потребител" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "неизвестен потребител" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Използва се само в тази общност." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Върмонт" msgid "Version" msgstr "Версия" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Много високо" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Уебкамера" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Уебхук" @@ -37681,13 +39308,13 @@ msgstr "Уебхук {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Уебхукът е създаден" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Уебхукът е изтрит" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Име на уебхука" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Уебхукът е актуализиран" diff --git a/fluxer_app/src/features/i18n/locales/cs/messages.po b/fluxer_app/src/features/i18n/locales/cs/messages.po index b302e7e63..8b2e5e894 100644 --- a/fluxer_app/src/features/i18n/locales/cs/messages.po +++ b/fluxer_app/src/features/i18n/locales/cs/messages.po @@ -56,6 +56,31 @@ msgstr "{a} píše..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} a {c} píšou..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} přidal(a) přepsání oprávnění pro {user} v kanálu {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} přidal přepsání oprávnění pro @everyone v {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} přidal(a) přepsání oprávnění pro roli {role} v kanálu {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} přidal(a) samolepku." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} přidal emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} přidal(a) oprávnění kanálu pro {targetEntity} v {channelNode}." @@ -64,35 +89,200 @@ msgstr "{actor} přidal(a) oprávnění kanálu pro {targetEntity} v {channelNod msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} přidal(a) oprávnění kanálu pro {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} přidal bota {target} jako dočasného člena." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} přidal bota {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} přidal(a) bota {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} přidal emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} přidal(a) emoji {namedTarget}." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} přidal(a) samolepku {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} přidal(a) samolepku {namedTarget}." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} zabanoval {target} na {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} zabanoval {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} zabanoval(a) uživatele {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} změnil(a) uživateli {target} blokování odesílání zpráv, reagování a připojování k hlasovým kanálům tak, aby skončilo {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} změnil přezdívku uživatele {target} z {oldNick} na {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} změnil(a) přepsání oprávnění kategorie {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} změnil(a) přepsání oprávnění kanálu {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} změnil(a) přepsání oprávnění odkazovaného kanálu {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} změnil(a) přepsání oprávnění textového kanálu {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} změnil(a) přepsání oprávnění hlasového kanálu {channel}." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} změnil vlastní adresu URL z {oldCode} na {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} změnil(a) avatar svého komunitního profilu." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} změnil(a) banner svého komunitního profilu." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} změnil(a) popis svého komunitního profilu na {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} si změnil(a) přezdívku z {oldNick} na {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} vytvořil webhook." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} vytvořil kategorii {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} vytvořil kanál {channel} v {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} vytvořil kanál {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} vytvořil(a) kanál {namedTarget}." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} vytvořil pozvánku {code} pro {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} vytvořil(a) pozvánku {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} vytvořil(a) pozvánku {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} vytvořil odkazovaný kanál {channel} v {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} vytvořil odkazovaný kanál {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} vytvořil(a) roli {namedTarget}." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} vytvořil roli {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} vytvořil textový kanál {channel} v {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} vytvořil textový kanál {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} vytvořil hlasový kanál {channel} v {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} vytvořil hlasový kanál {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} vytvořil webhook {name} v kanálu {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} vytvořil webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} vytvořil(a) webhook {namedTarget}." @@ -103,49 +293,209 @@ msgstr "{actor} vytvořil(a) webhook {namedTarget}." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} smazal(a) {0} {bulkCount, plural, one {zprávu} few {zprávy} many {zprávy} other {zpráv}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} smazal {count, plural, one {# zprávu} few {# zprávy} other {# zpráv}} v kanálu {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} smazal {count, plural, one {# zprávu} few {# zprávy} other {# zpráv}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} smazal zprávu v {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} smazal zprávu." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} smazal(a) zprávu{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} smazal(a) samolepku." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} smazal webhook." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} smazal(a) emoji." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} smazal(a) více zpráv{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} smazal několik zpráv v {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} smazal některé zprávy." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} smazal kategorii {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} smazal kanál {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} smazal(a) kanál {namedTarget}." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} smazal emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} smazal(a) emoji {namedTarget}." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} smazal(a) pozvánku {code} pro {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} smazal pozvánku {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} smazal(a) pozvánku {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} smazal odkazovaný kanál {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} smazal(a) roli {namedTarget}." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} smazal roli {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} smazal(a) samolepku {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} smazal(a) samolepku {namedTarget}." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} smazal textový kanál {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} smazal hlasový kanál {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} smazal webhook {name} z kanálu {channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} smazal webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} smazal(a) webhook {namedTarget}." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} odpojil {target} z kanálu {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} odpojil {target} z hlasového kanálu." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} odpojil(a) uživatele {targetMember} od hlasového hovoru." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} se odpojil z kanálu {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} se odpojil z hlasového kanálu." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} udělil(a) roli {role} uživateli {target}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} vyhodil(a) {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} vyhodil(a) uživatele {targetMember}." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} znovu umožnil(a) uživateli {target} slyšet ostatní v této komunitě." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} provedl změnu, kterou tato verze aplikace nemůže zobrazit." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} přesunul {target} z kanálu {oldChannel} do kanálu {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} přesunul {target} do kanálu {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} přesunul {target} do jiného hlasového kanálu." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} přesunul(a) uživatele {targetMember} do kanálu {channelNode}." @@ -154,16 +504,68 @@ msgstr "{actor} přesunul(a) uživatele {targetMember} do kanálu {channelNode}. msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} přesunul(a) uživatele {targetMember} do jiného hlasového kanálu." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} se přesunul z {oldChannel} do {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} přesunul(a) roli {role} níže v seznamu členů." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} přesunul(a) roli {role} níže v seznamu rolí." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} přesunul roli {role} výše v seznamu členů." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} přesunul roli {role} výše v seznamu rolí." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} se přesunul do {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} se přesunul do jiného hlasového kanálu." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} pozastavil(a) pozvánky." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} provedl(a) akci auditu u {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} připnul zprávu do kanálu {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} připnul zprávu." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} připnul(a) zprávu{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} odstranil(a) neaktivní členy." @@ -179,19 +581,249 @@ msgstr "{actor} odebral(a) oprávnění kanálu pro {targetEntity} v {channelNod msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} odebral(a) oprávnění kanálu pro {targetEntity}." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} odebral přezdívku {nick} uživateli {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} odebral(a) přepsání oprávnění pro {user} z kanálu {channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} odebral(a) přepsání oprávnění pro @everyone z kanálu {channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} odebral(a) přepsání oprávnění pro roli {role} z kanálu {channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} odebral(a) roli {role} uživateli {target}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} zrušil(a) dočasné omezení pro {target}." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} odebral vlastní adresu URL {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} odebral(a) barvu zvýraznění svého komunitního profilu." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} odebral(a) avatar svého komunitního profilu." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} odebral(a) banner svého komunitního profilu." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} odebral(a) popis svého komunitního profilu." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} odebral(a) zájmena ze svého komunitního profilu." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} si odstranil přezdívku {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} přejmenoval kategorii {oldName} na {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} přejmenoval kanál {oldName} na {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} přejmenoval(a) komunitu z {oldName} na {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} přejmenoval emoji {oldEmoji} na {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} přejmenoval(a) odkazovaný kanál {oldName} na {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} přejmenoval roli {oldName} na {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} přejmenoval(a) samolepku {oldName} na {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} přejmenoval(a) textový kanál {oldName} na {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} přejmenoval(a) hlasový kanál {oldName} na {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} přejmenoval webhook {oldName} na {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} resetoval pozici v seznamu členů pro roli {role}." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} obnovil(a) pozvánky." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} nastavil pozici v seznamu členů pro roli {role}." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} nastavil přezdívku pro {target} na {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} nastavil(a) vlastní adresu URL na {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} nastavil(a) barvu zvýraznění svého komunitního profilu na {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} nastavil(a) avatar svého komunitního profilu." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} nastavil(a) banner svého komunitního profilu." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} nastavil(a) popis svého komunitního profilu na {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} nastavil(a) zájmena svého komunitního profilu na {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} si nastavil přezdívku na {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} znemožnil(a) uživateli {target} slyšet ostatní v této komunitě." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} dočasně omezil {target} do {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} převedl vlastnictví komunity na {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} znovu zapnul(a) mikrofon uživatele {target} v této komunitě." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} vypnul(a) mikrofon uživatele {target} v této komunitě." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} zrušil(a) zabanování uživatele {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} zrušil(a) ban uživatele {targetMember}." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} odepnul(a) zprávu v kanálu {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} odepnul zprávu." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} odepnul(a) zprávu{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} aktualizoval {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} aktualizoval(a) uživatele {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} upravil(a) samolepku." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} aktualizoval webhook." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} upravil(a) emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} aktualizoval(a) oprávnění kanálu pro {targetEntity} v {channelNode}." @@ -204,35 +836,112 @@ msgstr "{actor} aktualizoval(a) oprávnění kanálu pro {targetEntity}." msgid "{actor} updated roles for {targetMember}." msgstr "{actor} upravil(a) role pro {targetMember}." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} upravil kategorii {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} upravil kanál {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} aktualizoval(a) kanál {namedTarget}." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} aktualizoval(a) nastavení komunity." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} upravil emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} aktualizoval(a) emoji {namedTarget}." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} aktualizoval(a) pozvánku {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} aktualizoval(a) pozvánku {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} aktualizoval(a) odkazovaný kanál {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} upravil(a) přepsání oprávnění pro {user} v kanálu {channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} upravil(a) přepsání oprávnění pro @everyone v kanálu {channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} upravil(a) přepsání oprávnění pro roli {role} v kanálu {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} aktualizoval(a) roli {namedTarget}." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} upravil roli {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} aktualizoval role uživatele {target}." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} upravil(a) samolepku {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} aktualizoval(a) samolepku {namedTarget}." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} upravil textový kanál {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} aktualizoval hlasový kanál {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} aktualizoval webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} aktualizoval(a) webhook {namedTarget}." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} aktualizoval(a) svůj profil komunity." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# položka} few {# položky} many {# položky} othe msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# člen} few {# členové} many {# člena} other {# členů}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# další oprávnění} few {# další oprávnění} other {# dalších oprávnění}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# společná komunita} few {# společné komunity} many {# společné komunity} other {# společných komunit}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {Zobrazit # zařízení} few {Zobrazit # zařízení msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Odhlásit # zařízení} other {Odhlásit # zařízení}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {Pozvánka byla omezena na # použití.} few {Pozvánka byla omezena na # použití.} other {Pozvánka byla omezena na # použití.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {Pozvánka byla použita #krát.} few {Pozvánka byla použita #krát.} other {Pozvánka byla použita #krát.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "Kanály {guildName}" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Aktivita" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Historie aktivit" @@ -2713,10 +3437,60 @@ msgstr "Přidáno {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "{length, plural, one {Byl přidán # odkaz na místní soubor.} few {Byly přidány # odkazy na místní soubory.} many {Bylo přidáno # odkazu na místní soubory.} other {Bylo přidáno # odkazů na místní soubory.}}" +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "Přidáno pozadí vložené pozvánky v chatu." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Přidán banner komunity." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Přidána ikona komunity." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "Přidáno varování o obsahu s textem {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Přidáno varování o obsahu." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "Přidán avatar." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Přidán obrázek na pozadí pozvánky." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Přidány role." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Přidán avatar komunitního profilu člena." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Přidán banner komunitního profilu člena." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "Přidána role {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Ovládací prvky zarovnání jsou dostupné pouze na širších obrazovk #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Všechny <0/> napořád. Žádné platby ani obnovování." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Všechny akce" @@ -3001,10 +3775,12 @@ msgstr "Všechny jazyky" msgid "All members" msgstr "Všichni členové" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "Za celou dobu" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Všichni uživatelé" @@ -3197,6 +3973,16 @@ msgstr "Povoleno {0} a odebráno povolení pro {1}." msgid "Allowed {0}." msgstr "Povoleno {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "Povolena oprávnění {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Všem členům bylo povoleno zmiňovat tuto roli." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Kdo vám může volat" @@ -3205,15 +3991,35 @@ msgstr "Kdo vám může volat" msgid "Allowed everyone to mention this role." msgstr "Všem bylo povoleno zmínit tuto roli." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Povoleny flexibilní názvy textových kanálů." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Kdo vás může přidávat do skupin" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Ostatním bylo povoleno klonovat emoji této komunity." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Ostatním bylo povoleno klonovat samolepky této komunity." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Povolená přesměrování" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Povoleno až {count, plural, one {# připojení} few {# připojení} other {# připojení}} na člena." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Banovat členy" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Banovat členy komunity s možností smazat jejich nedávné zprávy." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Důvod zabanování" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Blokovat uživatele" msgid "Blocked" msgstr "Blokováno" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Členovi bylo do {date} znemožněno odesílat zprávy, reagovat a připojovat se k hlasovým kanálům." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Bot" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Bot přidán" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Kategorie smazána" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Kategorie plná" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Na střed" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Na střed" @@ -6298,11 +7116,183 @@ msgstr "Změnit uživatelské jméno" msgid "Changed nickname from {0} to {1}." msgstr "Změnil(a) přezdívku z „{0}“ na „{1}“." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Změněn pomalý režim z {oldDuration} na {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "Změněn AFK kanál z {oldChannel} na {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "Změněn časový limit neaktivity z {oldDuration} na {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "Změněna kvalita zvuku z {oldKbps} kbps na {newKbps} kbps." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Změněn avatar." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Změnil(a) přenosovou rychlost na {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Změněno blokování odesílání zpráv, reagování a připojování k hlasovým kanálům tak, aby skončilo {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Změněno pozadí vložené pozvánky v chatu." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Změněn komunitní banner." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Změněna ikona komunity." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "Změněn počet připojení na člena z {oldCount} na {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "Změněno varování o obsahu z {oldText} na {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Změněna vlastní ikona role." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Změněno vlastní varování z {oldText} na {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "Změněno výchozí nastavení oznámení z {oldSetting} na {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Změněn popis z {oldText} na {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Změněn filtr explicitního obsahu z {oldFilter} na {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Změněno zarovnání obrázku pozvánky z {oldAlignment} na {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Změněno pozadí pozvánky." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "Změněn odkaz z {oldUrl} na {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Změněn avatar komunitního profilu člena." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Změněn banner komunitního profilu člena." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "Změněn popis komunitního profilu člena na {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "Změněn práh historie zpráv z {oldDate} na {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "Změněn název z {oldName} na {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "Změněna přezdívka z {oldNick} na {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Změněna barva role z {oldColor} na {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Změněna ikona role z {oldEmoji} na {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "Systémový kanál byl změněn z {oldChannel} na {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Změněno téma z {oldText} na {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "Změněn limit uživatelů z {oldCount} na {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "Změněna vlastní adresa URL z {oldCode} na {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Změněna úroveň ověření z {oldLevel} na {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "Změněn hlasový region z {oldRegion} na {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "kanál" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Kanál nebo kategorie" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Přidána vlastní oprávnění kanálu" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Odebrána vlastní oprávnění kanálu" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Aktualizována vlastní oprávnění kanálu" @@ -7815,7 +8805,7 @@ msgstr "Komunity s více než 250 lidmi jsou automaticky přepnuty na nastavení #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Smazat vaše zprávy v této konverzaci?" msgid "Deleted" msgstr "Smazáno" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "Smazána nedávná historie zpráv člena: {duration}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Smazaný text" msgid "Deleted your messages." msgstr "Vaše zprávy byly smazány." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "smazaná-kategorie" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "smazaný-kanál" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "smazaná-role" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "Odepřeno {0} a zrušeno odepření pro {1}." msgid "Denied {0}." msgstr "Odepřeno {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "Odepřena oprávnění {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Vložený obsah znovu zobrazen" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Klonování emoji povoleno" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Emoji vytvořeno" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Emoji smazáno" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Sloty pro emoji jsou plné" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Emoji aktualizováno" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Filtrovat podle data vytvoření účtu" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Filtrovat podle akce" @@ -14572,18 +15587,22 @@ msgstr "Filtrovat podle rolí" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Filtrovat podle uživatele" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Filtrovat zprávy všech členů" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Filtrovat zprávy členů bez rolí" @@ -15890,6 +16909,11 @@ msgstr "Uděleno {0} a odebráno {1}." msgid "Granted {0}." msgstr "Uděleno {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "Udělena oprávnění {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Vítejte, {username}! Doufáme, že se vám tady bude líbit." msgid "Hey, {username}, welcome aboard!" msgstr "Zdravíme, {username}! Vítejte na palubě!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Zapnuto skrývání zpráv o připojení v systémovém kanálu." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Zapnuto skrývání korunky vlastníka komunity." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Skrýt vlastní kameru?" msgid "Hide your own screen share?" msgstr "Skrýt vlastní sdílení obrazovky?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Vysoká" @@ -17688,7 +18724,7 @@ msgstr "Pozvat" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "Kód pozvánky je {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Pozvánka vytvořena" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Pozvánka smazána" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Pozvánka není k dispozici" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Pozvánka aktualizována" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (vlevo)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Zarovnáno vlevo" @@ -18745,6 +19783,11 @@ msgstr "Povolit čtečkám obrazovky oznamovat nové zprávy, jakmile dorazí do msgid "Let the community self-moderate" msgstr "Nechte komunitu, ať se moderuje sama" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Členovi bylo znovu umožněno slyšet ostatní v této komunitě." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Po restartování desktopové aplikace umožní pomocí vlastního CSS zobrazit průhledné oblasti okna." @@ -18815,6 +19858,16 @@ msgstr "Označeno jako To se mi líbí." msgid "Likes: <0>{countLabel}" msgstr "To se mi líbí: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "Omezeno zmiňování této role na členy s oprávněním zmiňovat jakoukoli roli." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Kanál omezen na {count, plural, one {# uživatele} few {# uživatele} other {# uživatelů}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Louisiana" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Nízká" @@ -19204,6 +20259,11 @@ msgstr "Výchozí zařízení v macOS" msgid "macOS permissions" msgstr "Oprávnění systému macOS" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Kanál byl nastaven tak, aby dědil nastavení obsahu pro dospělé." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Označil(a) emoji jako animované." msgid "Marked emoji as static." msgstr "Označil(a) emoji jako statické." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Kanál byl označen jako kanál s obsahem pro dospělé." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Kanál byl označen jako kanál bez obsahu pro dospělé." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "Označil(a) člena jako trvalého." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Zastavit přehrávání" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Střední" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Střední velikost (výchozí)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Člen" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Akce člena: {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Člen zabanován" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Člen odpojen" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Člen vyhozen" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Seznamy členů jsou v této komunitě dočasně nedostupné" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Člen přesunut" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Člen nenalezen" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Role člena upraveny" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Členem od" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Ban člena zrušen" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Člen upraven" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Členové jsou odebráni, když jsou offline, pokud jim není přidělena role." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Neaktivní členové odebráni" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "Členové bez oprávnění {readMessageHistoryPermissionLabel} si mohou prohlížet zprávy odeslané po tomto datu." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Členové, vybráno" @@ -20077,8 +21149,10 @@ msgstr "Zmínky o vás se zde zobrazují po dobu {recentMentionsRetentionDays} d msgid "Mentions of you show up here for {retentionDays} days." msgstr "Zmínky o vás se zde zobrazují po dobu {retentionDays} dní." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Pouze zmínky" @@ -20104,7 +21178,7 @@ msgstr "zpráva" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Zpráva" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Ladění zprávy" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Zpráva smazána" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Seznam zpráv pro {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Zpráva připnuta" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Čas zprávy" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Zpráva odepnuta" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Zprávy a média" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Zprávy smazány" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Moderování" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Akce moderování a změny komunity se zobrazí zde." @@ -20915,16 +21989,51 @@ msgstr "Přesunout do" msgid "Move to…" msgstr "Přesunout do…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Přesunuto z {oldChannel} do {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Kanál byl přesunut z kategorie {oldCategory} do kategorie {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Kanál byl přesunut do kategorie {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Přesunul(a) kanál do kategorie {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "Role přesunuta níže v seznamu členů." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "Role přesunuta níže v seznamu rolí." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Role přesunuta na pozici {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "Role přesunuta výše v seznamu členů." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "Role přesunuta výše v seznamu rolí." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Nová zpráva" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Nové zprávy" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "Žádné odkazy na místní soubory" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Zatím žádné záznamy" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "Důvod neuveden" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "Důvod nebyl uveden." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Bez převodu" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Bez převodu" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "Nástroj pro tvorbu OAuth2 URL" msgid "Objects" msgstr "Předměty" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Předměty" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Vypnuto" @@ -23523,6 +24636,21 @@ msgstr "Nepodařilo se načíst původní zprávu" msgid "Original message was deleted" msgstr "Původní zpráva byla smazána" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Původně zabanoval {user} dne {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Původně zabanoval {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Původně zabanován(a) {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Pozastaveno kvůli omezenému pohybu. Zapněte pro přehrávání animov msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "Pozastaveno kvůli omezenému pohybu. Zapněte pro přehrávání GIFů." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Pozvánky pozastaveny." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Trvale smazat váš účet a všechna související data. Tuto akci nelz msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Trvale odstraní vaše zprávy ze soukromých konverzací, skupinových konverzací a komunit. Zpracování probíhá na pozadí a po dokončení dostanete přímou zprávu." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Přepsání oprávnění přidáno" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Přepsání oprávnění odebráno" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Přepsání oprávnění aktualizováno" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Chcete upgradovat?" msgid "Real-time" msgstr "V reálném čase" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Důvod" @@ -26291,26 +27440,166 @@ msgstr "Role {oldLabel} odebrána." msgid "Removed roles." msgstr "Odebral(a) role." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "Odebrán AFK kanál." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Odebrán avatar." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Kanál byl odebrán z kategorie." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Kanál byl odebrán z kategorie {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Odebráno pozadí vložené pozvánky v chatu." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "Odebrán komunitní banner." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Odebrána ikona komunity." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "Odebrán text varování o obsahu." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Odstraněno varování o obsahu." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Odebrána vlastní ikona role." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Odebrán vlastní text varování." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Odebrán popis {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Odebrán obrázek na pozadí pozvánky." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Odebrán odkaz." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Odebrána barva zvýraznění komunitního profilu člena." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Odebrán avatar komunitního profilu člena." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Odebrán banner komunitního profilu člena." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Odebrán popis komunitního profilu člena." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "Odebrána zájmena z komunitního profilu člena." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Odebrán práh historie zpráv." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "Odebrána přezdívka {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "Odebráno vlastní oprávnění pro {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "Odebrána role {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Odebrána barva role." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Odebrána ikona role." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Odebral(a) nastavení kanálu s pravidly." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "Systémový kanál byl odebrán." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "Dočasné omezení zrušeno." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "Odebráno téma {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Odebral(a) emoji Unicode." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Odebral(a) limit uživatelů." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "Odebrána vlastní adresa URL {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Dočasné omezení uživatele {targetUserTag} bylo zrušeno" @@ -26381,6 +27670,11 @@ msgstr "Přejmenoval(a) samolepku na „{0}“." msgid "Renamed the channel to {0}." msgstr "Přejmenoval(a) kanál na \"{0}\"." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Komunita přejmenována z {oldName} na {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Vyžadovat dvoufaktorové ověřování, než budou moderátoři moci ba msgid "Required" msgstr "Povinné" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "Vyžadováno 2FA pro moderátorské akce." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Obnovit mezery" msgid "Reset the connection limit." msgstr "Limit připojení byl resetován." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "Pozice role v seznamu členů obnovena na výchozí." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Zmiňování této role bylo omezeno na členy s příslušným oprávn msgid "Resubscribe" msgstr "Obnovit předplatné" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Pozvánky obnoveny." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Zpět na přihlášení" @@ -27330,6 +28639,11 @@ msgstr "Zrušit tuto pozvánku? Nelze vrátit zpět." msgid "Revoked {0}." msgstr "Zrušeno {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "Odebrána oprávnění {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (vpravo)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Zarovnáno vpravo" @@ -27408,7 +28724,7 @@ msgstr "Vyzváněcí tón" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Role" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Barva role" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Role vytvořena" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Role byla úspěšně vytvořena" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Role smazána" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "Název role je povinný" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Role aktualizována" @@ -28930,11 +30246,21 @@ msgstr "Relace" msgid "Set {fieldNode} to {0}." msgstr "Nastaveno {fieldNode} na {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Nastavena vlastní ikona role." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Nastavit vlastní stav" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Nastavena pozice role v seznamu členů." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "Nastavena barva role na <0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "Nastavil(a) pomalý režim na {0} {seconds, plural, one {sekundu} few {sekundy} many {sekundy} other {sekund}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Pomalý režim nastaven na {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Nastavit stav" msgid "Set the AFK channel to {0}." msgstr "Nastavil(a) kanál pro neaktivní na {0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "AFK kanál nastaven na {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "Doba neaktivity v sekundách byla nastavena na {0}." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "Kvalita zvuku nastavena na {kbps} kbps." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "Typ kanálu nastaven na {0}." msgid "Set the connection limit to {0}." msgstr "Nastavil(a) limit připojení na {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "Text varování o obsahu nastaven na {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "Vlastní text varování nastaven na {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "Popis nastaven na {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "Nastavil(a) zarovnání pozadí pozvánky na {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "Odkaz nastaven na {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "Nastavena barva zvýraznění komunitního profilu člena na {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "Nastaven popis komunitního profilu člena na {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "Nastavena zájmena komunitního profilu člena na {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "Práh historie zpráv nastaven na {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "Přezdívka nastavena na {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Nastavte veřejný název produktu, barvu motivu a obrázkové podklady, které se zobrazují v klientech." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "Barva role nastavena na {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "Ikona role nastavena na {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "Nastavil(a) kanál pravidel na {0}." msgid "Set the system channel to {0}." msgstr "Nastavil(a) systémový kanál na {0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "Systémový kanál nastaven na {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "Téma nastaveno na {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "Nastavil(a) limit uživatelů na {0}." msgid "Set the vanity URL to {0}." msgstr "Nastavil(a) vlastní odkaz na pozvánku na {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "Vlastní adresa URL nastavena na {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "Hlasový region nastaven na {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "Hlasový region nastaven na automatický." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Zobrazit banner globálního profilu v této komunitě" msgid "Show your Visionary as a regular subscription instead" msgstr "Zobrazit Visionary jako běžné předplatné" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Zapnuto zobrazování členů s touto rolí v samostatné sekci v seznamu členů." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Při vracení peněz se něco pokazilo. Pokud se to bude opakovat, kontaktujte podporu." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Při načítání protokolu aktivit se vyskytla chyba." @@ -31105,6 +32531,11 @@ msgstr "Zahájit hlasový hovor" msgid "Start with computer" msgstr "Spustit s počítačem" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "Zapnuto oddělené zobrazení členů s touto rolí." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "samolepka" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "Samolepku se nepodařilo dostatečně zkomprimovat" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Samolepka vytvořena" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Samolepka smazána" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Místa pro samolepky jsou obsazená" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Samolepka aktualizována" @@ -31412,6 +32843,46 @@ msgstr "Zastavit sledování streamu" msgid "Stop." msgstr "Zastavit." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Zakázány flexibilní názvy textových kanálů." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Ostatním bylo odebráno povolení klonovat emoji této komunity." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Ostatním bylo odebráno povolení klonovat samolepky této komunity." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Vypnuto oddělené zobrazení členů s touto rolí." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Vypnuto skrývání zpráv o připojení v systémovém kanálu." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Vypnuto skrývání korunky vlastníka komunity." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Zrušen požadavek 2FA pro moderátorské akce." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Členovi bylo znemožněno slyšet ostatní v této komunitě." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Synchronizovat s kategorií" msgid "Syntax highlighting" msgstr "Zvýraznění syntaxe" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "Systém" @@ -32449,6 +33922,16 @@ msgstr "Aplikace spadla. Vyhledávají se aktualizace, které by tento problém msgid "The app should now be signed in to your account." msgstr "Aplikace by nyní měla být přihlášena k vašemu účtu." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "Ban už vypršel {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "Ban měl vypršet {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "Bot byl přidán do <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "Aktualizace desktopové aplikace byla stažena. Restartujte aplikaci {pr msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "Stažený soubor je uložen do vašeho počítače. Nainstalujte jej pomocí svého správce balíčků." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "Emoji nahrál {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "Soubor obsahuje ověřovací token, který načteme z <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "Soubor, který se snažíte nahrát, překračuje maximální povolenou msgid "The following people can't be added to this group DM:" msgstr "Tyto osoby nelze přidat do této skupinové konverzace:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "Pozvánku vytvořil {user} dne {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "Pozvánku vytvořil {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "Pozvánka byla vytvořena {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "Pozvánka nebyla nikdy použita." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "Pozvánka měla vypršet {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "Pozvánka byla nastavena tak, aby umožňovala neomezené použití." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "Pozvánka byla nastavena tak, aby vypršela po {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "Pozvánka byla nastavena tak, aby udělovala dočasné členství." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "Pozvánka byla nastavena tak, aby nikdy nevypršela." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "Jazyk, kterým mluví většina vaší komunity. Používá se k filtrování výsledků v Objevování." @@ -32518,6 +34051,11 @@ msgstr "Odkaz může být stále funkční. Zkuste to prosím za chvíli znovu." msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "Ověření věku pro obsah pro dospělé bylo zrušeno. Můžete zavřít tuto kartu a zkusit to znovu z aplikace." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "Člen již není dočasný." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "Nová cena je již naplánovaná na {effectiveDate}." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "Nový hlasový kanál znovu použije oprávnění, limit uživatelů a datový tok z <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "Přepsání povolilo {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "Přepsání odepřelo {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "Stránka, kterou hledáte, neexistuje nebo byla přesunuta." @@ -32565,6 +34113,11 @@ msgstr "Zadané redirect_uri není pro tuto aplikaci zaregistrováno." msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "Zadané redirect_uri musí používat HTTP nebo HTTPS." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "Role udělila {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "Samolepka byla nahrána jako animovaná." msgid "The sticker was uploaded as static." msgstr "Samolepka byla nahrána jako statická." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "Samolepku nahrál {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "Systém udělil roli {role} uživateli {target}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "Systém odebral roli {role} uživateli {target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "Uživatelské jméno <0>{fluxerTag} je již obsazeno. Pokračování msgid "The verification code is invalid or expired." msgstr "Ověřovací kód je neplatný nebo vypršel." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "Webhook vytvořil {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Tato karta neodpovídá vaší fakturační zemi, proto ji nelze použít pro tuto místní měnu. Použijte místní kartu nebo se vraťte do aplikace {productName} a vyberte jinou platební metodu." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "Tato kategorie již obsahuje maximální počet {maxChannelsPerCategory} kanálů." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Sledujte akce moderátorů napříč komunitou." @@ -33953,6 +35526,11 @@ msgstr "Předat vlastnictví skupiny uživateli {userName}?" msgid "Transfer ownership" msgstr "Převést vlastnictví" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Vlastnictví komunity převedeno na {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Zapnout soukromí při streamování" msgid "Turn text smileys into emoji" msgstr "Převádět textové emotikony na emoji" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Vypnut obsah pro dospělé." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Vypnut pomalý režim." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "Vypnuto varování o obsahu." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Vypnut odpojený banner." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Vypnut mikrofon člena v této komunitě." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Zapnut obsah pro dospělé." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "Zapnuto varování o obsahu." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Zapnut odpojený banner." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "Znovu zapnut mikrofon člena v této komunitě." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Vypnutí oprávnění může zabránit správnému fungování aplikace." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "Ukrajinština" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Nelze načíst protokoly aktivit" @@ -34859,6 +36482,7 @@ msgstr "Neznámý cíl" msgid "unknown user" msgstr "neznámý uživatel" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "neznámý uživatel" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Použito pouze v této komunitě." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Vermont" msgid "Version" msgstr "Verze" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Velmi vysoká" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Webkamera" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Webhook vytvořen" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhook smazán" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Název webhooku" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhook aktualizován" diff --git a/fluxer_app/src/features/i18n/locales/da/messages.po b/fluxer_app/src/features/i18n/locales/da/messages.po index e3d0e6ab1..bfa013d66 100644 --- a/fluxer_app/src/features/i18n/locales/da/messages.po +++ b/fluxer_app/src/features/i18n/locales/da/messages.po @@ -56,6 +56,31 @@ msgstr "{a} skriver ..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} og {c} skriver ..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} tilføjede en tilladelsesoverstyring for {user} i {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} tilføjede en tilladelsesoverstyring for @everyone i {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} tilføjede en tilladelsesoverstyring for rollen {role} i {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} tilføjede et klistermærke." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} tilføjede en emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} har tilføjet kanaltilladelser for {targetEntity} i {channelNode}." @@ -64,35 +89,200 @@ msgstr "{actor} har tilføjet kanaltilladelser for {targetEntity} i {channelNode msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} har tilføjet kanaltilladelser for {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} tilføjede botten {target} som midlertidigt medlem." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} tilføjede botten {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} tilføjede botten {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} tilføjede emojien {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} tilføjede emojien {namedTarget}." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} tilføjede klistermærket {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} tilføjede klistermærket {namedTarget}." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} udelukkede {target} i {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} udelukkede {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} har udelukket {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} ændrede blokeringen, der forhindrer {target} i at sende beskeder, reagere og deltage i tale, så den udløber den {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} ændrede kaldenavnet for {target} fra {oldNick} til {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} ændrede tilladelsesoverstyringerne for kategorien {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} ændrede tilladelsesoverstyringerne for kanalen {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} ændrede tilladelsesoverstyringerne for linkkanalen {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} ændrede tilladelsesoverstyringerne for tekstkanalen {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} ændrede tilladelsesoverstyringerne for talekanalen {channel}." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} ændrede det brugerdefinerede invitationslink fra {oldCode} til {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} ændrede avataren på sin fællesskabsprofil." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} ændrede banneret på sin fællesskabsprofil." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} ændrede bioen på sin fællesskabsprofil til {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} ændrede sit kaldenavn fra {oldNick} til {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} oprettede en webhook." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} oprettede kategorien {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} oprettede kanalen {channel} i {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} oprettede kanalen {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} oprettede kanalen {namedTarget}." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} oprettede invitationen {code} til {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} oprettede invitationen {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} oprettede invitationen {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} oprettede linkkanalen {channel} i {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} oprettede linkkanalen {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} oprettede rollen {namedTarget}." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} oprettede rollen {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} oprettede tekstkanalen {channel} i {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} oprettede tekstkanalen {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} oprettede talekanalen {channel} i {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} oprettede talekanalen {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} oprettede webhook'en {name} i {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} oprettede webhook'en {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} oprettede webhooken {namedTarget}." @@ -103,49 +293,209 @@ msgstr "{actor} oprettede webhooken {namedTarget}." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} slettede {0} {bulkCount, plural, one {besked} other {beskeder}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} slettede {count, plural, one {# besked} other {# beskeder}} i {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} slettede {count, plural, one {# besked} other {# beskeder}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} slettede en besked i {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} slettede en besked." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} slettede en besked{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} slettede et klistermærke." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} slettede en webhook." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} slettede en emoji." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} slettede flere beskeder{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} slettede nogle beskeder i {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} slettede nogle beskeder." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} slettede kategorien {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} slettede kanalen {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} slettede kanalen {namedTarget}." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} slettede emojien {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} slettede emojien {namedTarget}." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} slettede invitationen {code} til {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} slettede invitationen {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} slettede invitationen {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} slettede linkkanalen {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} slettede rollen {namedTarget}." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} slettede rollen {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} slettede klistermærket {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} slettede klistermærket {namedTarget}." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} slettede tekstkanalen {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} slettede talekanalen {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} slettede webhooken {name} fra {channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} slettede webhooken {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} slettede webhooken {namedTarget}." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} frakoblede {target} fra {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} frakoblede {target} fra tale." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} afbrød forbindelsen til taleopkaldet for {targetMember}." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} frakoblede sig fra {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} frakoblede sig fra tale." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} gav {target} rollen {role}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} fjernede {target} fra fællesskabet." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} fjernede {targetMember} fra fællesskabet." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} lod {target} høre andre i dette community igen." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} foretog en ændring, som denne version af appen ikke kan vise." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} flyttede {target} fra {oldChannel} til {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} flyttede {target} til {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} flyttede {target} til en anden talekanal." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} flyttede {targetMember} til {channelNode}." @@ -154,16 +504,68 @@ msgstr "{actor} flyttede {targetMember} til {channelNode}." msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} flyttede {targetMember} til en anden talekanal." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} flyttede fra {oldChannel} til {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} flyttede rollen {role} ned på medlemslisten." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} flyttede rollen {role} ned på rollelisten." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} flyttede rollen {role} op på medlemslisten." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} flyttede rollen {role} op på rollelisten." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} flyttede til {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} flyttede til en anden talekanal." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} satte invitationer på pause." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} udførte en handling i revisionsloggen på {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} fastgjorde en besked i {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} fastgjorde en besked." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} fastgjorde en besked{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} har fjernet inaktive medlemmer." @@ -179,19 +581,249 @@ msgstr "{actor} fjernede kanaltilladelser for {targetEntity} i {channelNode}." msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} fjernede kanaltilladelser for {targetEntity}." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} fjernede kaldenavnet {nick} fra {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} fjernede tilladelsesoverstyringen for {user} fra {channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} fjernede tilladelsesoverstyringen for @everyone fra {channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} fjernede tilladelsesoverstyringen for rollen {role} fra {channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} fjernede rollen {role} fra {target}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} fjernede timeouten for {target}." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} fjernede det brugerdefinerede invitationslink {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} fjernede accentfarven på sin fællesskabsprofil." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} fjernede avataren på sin fællesskabsprofil." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} fjernede banneret på sin fællesskabsprofil." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} fjernede bioen på sin fællesskabsprofil." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} fjernede pronominerne på sin fællesskabsprofil." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} fjernede sit kaldenavn {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} omdøbte kategorien {oldName} til {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} omdøbte kanalen {oldName} til {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} omdøbte fællesskabet fra {oldName} til {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} omdøbte emojien {oldEmoji} til {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} omdøbte linkkanalen {oldName} til {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} omdøbte rollen {oldName} til {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} omdøbte klistermærket {oldName} til {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} omdøbte tekstkanalen {oldName} til {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} omdøbte talekanalen {oldName} til {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} omdøbte webhooken {oldName} til {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} nulstillede medlemslistepositionen for rollen {role}." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} genoptog invitationer." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} angav en position i medlemslisten for rollen {role}." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} angav kaldenavnet for {target} til {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} angav det brugerdefinerede invitationslink til {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} angav accentfarven på sin fællesskabsprofil til {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} tilføjede en avatar til sin fællesskabsprofil." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} tilføjede et banner til sin fællesskabsprofil." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} angav bioen på sin fællesskabsprofil til {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} angav pronominerne på sin fællesskabsprofil til {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} angav sit kaldenavn til {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} forhindrede {target} i at høre andre i dette community." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} satte {target} i timeout indtil {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} overførte ejerskabet af fællesskabet til {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} slog mikrofonen til igen for {target} i dette community." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} slog mikrofonen fra for {target} i dette community." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} ophævede udelukkelsen af {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} har ophævet udelukkelsen af {targetMember}." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} fjernede fastgørelsen af en besked i {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} fjernede fastgørelsen af en besked." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} fjernede fastgørelsen af en besked{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} opdaterede {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} opdaterede {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} opdaterede et klistermærke." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} opdaterede en webhook." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} opdaterede en emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} opdaterede kanaltilladelser for {targetEntity} i {channelNode}." @@ -204,35 +836,112 @@ msgstr "{actor} opdaterede kanaltilladelser for {targetEntity}." msgid "{actor} updated roles for {targetMember}." msgstr "{actor} opdaterede roller for {targetMember}." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} opdaterede kategorien {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} opdaterede kanalen {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} opdaterede kanalen {namedTarget}." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} opdaterede fællesskabsindstillingerne." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} opdaterede emojien {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} opdaterede emojien {namedTarget}." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} opdaterede invitationen {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} opdaterede invitationen {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} opdaterede linkkanalen {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} opdaterede tilladelsesoverstyringen for {user} i {channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} opdaterede tilladelsesoverstyringen for @everyone i {channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} opdaterede tilladelsesoverstyringen for rollen {role} i {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} opdaterede rollen {namedTarget}." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} opdaterede rollen {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} opdaterede rollerne for {target}." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} opdaterede klistermærket {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} opdaterede klistermærket {namedTarget}." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} opdaterede tekstkanalen {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} opdaterede talekanalen {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} opdaterede webhooken {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} opdaterede webhooken {namedTarget}." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} opdaterede sin community-profil." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# element} other {# elementer}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# medlem} other {# medlemmer}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# tilladelse mere} other {# tilladelser mere}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# fælles fællesskab} other {# fælles fællesskaber}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {Vis # enhed} other {Vis # enheder}}" msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Log ud af # enhed} other {Log ud af # enheder}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {Invitationen var begrænset til # brug.} other {Invitationen var begrænset til # brug.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {Invitationen blev brugt # gang.} other {Invitationen blev brugt # gange.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "Kanaler i {guildName}" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Aktivitet" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Aktivitetslog" @@ -2713,10 +3437,60 @@ msgstr "Tilføjede {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "Tilføjede {length, plural, one {# lokal filreference} other {# lokale filreferencer}}." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "Tilføjede en chat-embed-baggrund." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Tilføjede et community-banner." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Tilføjede et community-ikon." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "Tilføjede en indholdsadvarsel med teksten {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Tilføjede en indholdsadvarsel." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "Tilføjede en avatar." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Tilføjede en baggrund for invitationer." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Tilføjede roller." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Tilføjede medlemmets community-profilavatar." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Tilføjede medlemmets community-profilbanner." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "Tilføjede rollen {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Kontroller til placering er kun tilgængelige på bredere skærme" #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Alle <0/>, for evigt. Ingen fakturering, ingen fornyelser." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Alle handlinger" @@ -3001,10 +3775,12 @@ msgstr "Alle sprog" msgid "All members" msgstr "Alle medlemmer" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "Hele perioden" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Alle brugere" @@ -3197,6 +3973,16 @@ msgstr "Tillod {0} og fjernede tilladelse for {1}." msgid "Allowed {0}." msgstr "Tillod {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "Tillod {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Tillod alle medlemmer at omtale denne rolle." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Tilladte opkaldere" @@ -3205,15 +3991,35 @@ msgstr "Tilladte opkaldere" msgid "Allowed everyone to mention this role." msgstr "Alle fik lov til at omtale denne rolle." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Tillod fleksible tekstkanalnavne." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Tilladte invitationer" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Tillod andre at klone dette communitys emojis." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Tillod andre at klone dette communitys klistermærker." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Tilladte omdirigeringer" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Tillod op til {count, plural, one {# forbindelse} other {# forbindelser}} pr. medlem." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Udeluk medlemmer" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Udeluk medlemmer fra fællesskabet med mulighed for at slette deres seneste beskeder." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Årsag til udelukkelse" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Bloker bruger" msgid "Blocked" msgstr "Blokeret" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Forhindrede medlemmet i at sende beskeder, reagere og deltage i tale indtil {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Bot" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Bot tilføjet" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Kategori slettet" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Kategorien er fuld" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Centrer" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Centreret" @@ -6298,11 +7116,183 @@ msgstr "Skift dit brugernavn" msgid "Changed nickname from {0} to {1}." msgstr "Ændrede kaldenavn fra {0} til {1}." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Ændrede langsom tilstand fra {oldDuration} til {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "Ændrede AFK-kanalen fra {oldChannel} til {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "Ændrede AFK-timeout fra {oldDuration} til {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "Ændrede lydkvaliteten fra {oldKbps} kbps til {newKbps} kbps." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Ændrede avataren." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Ændrede bithastigheden til {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Ændrede blokeringen af at sende beskeder, reagere og deltage i tale, så den udløber den {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Ændrede chat-embed-baggrunden." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Ændrede community-banneret." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Ændrede community-ikonet." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "Ændrede forbindelser pr. medlem fra {oldCount} til {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "Ændrede teksten til indholdsadvarsel fra {oldText} til {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Ændrede det brugerdefinerede rolleikon." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Ændrede den brugerdefinerede advarselstekst fra {oldText} til {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "Ændrede standard notifikationsindstilling fra {oldSetting} til {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Ændrede beskrivelsen fra {oldText} til {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Ændrede filteret for eksplicit indhold fra {oldFilter} til {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Ændrede justeringen af baggrundsbilledet for invitationer fra {oldAlignment} til {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Ændrede baggrunden for invitationen." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "Ændrede linket fra {oldUrl} til {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Ændrede medlemmets community-profilavatar." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Ændrede medlemmets community-profilbanner." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "Ændrede medlemmets community-profilbio til {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "Ændrede grænsen for beskedhistorik fra {oldDate} til {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "Ændrede navnet fra {oldName} til {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "Ændrede kaldenavnet fra {oldNick} til {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Ændrede rollens farve fra {oldColor} til {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Ændrede rollens ikon fra {oldEmoji} til {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "Ændrede systemkanalen fra {oldChannel} til {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Ændrede emnet fra {oldText} til {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "Ændrede brugergrænsen fra {oldCount} til {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "Ændrede det brugerdefinerede invitationslink fra {oldCode} til {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Ændrede verificeringsniveauet fra {oldLevel} til {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "Ændrede taleregionen fra {oldRegion} til {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "kanal" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Kanal eller kategori" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Tilpassede kanaltilladelser tilføjet" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Tilpassede kanaltilladelser fjernet" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Tilpassede kanaltilladelser opdateret" @@ -7815,7 +8805,7 @@ msgstr "Fællesskaber med over 250 personer tvinges til indstillingen \"kun omta #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Slet dine beskeder i denne samtale?" msgid "Deleted" msgstr "Slettet" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "Slettede {duration} af medlemmets seneste beskedhistorik." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Slettet tekst" msgid "Deleted your messages." msgstr "Dine beskeder er slettet." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "slettet-kategori" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "slettet-kanal" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "slettet-rolle" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "Nægtede {0} og fjernede nægtelse for {1}." msgid "Denied {0}." msgstr "Nægtede {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "Nægtede {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Indlejringer vises igen" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Emoji-kloning aktiveret" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Emoji oprettet" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Emoji slettet" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Emoji-pladser optaget" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Emoji opdateret" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Filtrer efter oprettelsesdato" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Filtrer efter handling" @@ -14572,18 +15587,22 @@ msgstr "Filtrer efter roller" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Filtrer efter bruger" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Filtrer alle" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Filtrer medlemmer uden roller" @@ -15890,6 +16909,11 @@ msgstr "Gav {0} og tilbagekaldte {1}." msgid "Granted {0}." msgstr "Gav {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "Tildelte {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Hej, {username}! Vi håber, du nyder dit ophold." msgid "Hey, {username}, welcome aboard!" msgstr "Hej, {username}, velkommen om bord!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Skjulte tilmeldingsbeskeder i systemkanalen." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Skjulte ejerens krone i fællesskabet." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Skjul dit eget kamera?" msgid "Hide your own screen share?" msgstr "Skjul din egen skærmdeling?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Højt" @@ -17688,7 +18724,7 @@ msgstr "Inviter" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "Invitationskoden er {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Invitation oprettet" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Invitation slettet" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Invitation ikke tilgængelig" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Invitation opdateret" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (venstre)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Venstrejusteret" @@ -18745,6 +19783,11 @@ msgstr "Lad skærmlæsere annoncere nye beskeder, når de ankommer i den åbne k msgid "Let the community self-moderate" msgstr "Lad fællesskabet selv moderere" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Lod medlemmet høre andre i dette community igen." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Lader brugerdefineret CSS vise gennemsigtige områder i vinduet efter genstart af computerappen." @@ -18815,6 +19858,16 @@ msgstr "Markeret som synes godt om." msgid "Likes: <0>{countLabel}" msgstr "Synes godt om: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "Begrænsede omtaler af denne rolle til medlemmer med tilladelse til at omtale enhver rolle." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Begrænsede kanalen til {count, plural, one {# bruger} other {# brugere}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Louisiana" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Lavt" @@ -19204,6 +20259,11 @@ msgstr "macOS-standard" msgid "macOS permissions" msgstr "macOS-tilladelser" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Lod kanalen arve sin indstilling for indhold for voksne." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Markerede emoji som animeret." msgid "Marked emoji as static." msgstr "Markerede emoji som statisk." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Markerede kanalen som indhold for voksne." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Markerede kanalen som fri for indhold for voksne." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "Markerede medlemmet som permanent." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Stop afspilning" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Mellem" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Mellem (standard)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Medlem" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Medlemshandlinger for {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Medlem udelukket" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Medlem afbrudt fra taleopkald" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Medlem fjernet fra fællesskabet" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Medlemslister er midlertidigt utilgængelige i dette fællesskab" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Medlem flyttet" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Medlem ikke fundet" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Medlemsroller opdateret" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Medlem siden" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Medlems udelukkelse ophævet" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Medlem opdateret" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Medlemmer fjernes, når de er offline, medmindre de får en rolle." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Medlemmer fjernet" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "Medlemmer uden tilladelsen {readMessageHistoryPermissionLabel} kan se beskeder sendt efter denne dato." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Medlemmer valgt" @@ -20077,8 +21149,10 @@ msgstr "Omtaler af dig vises her i {recentMentionsRetentionDays} dage." msgid "Mentions of you show up here for {retentionDays} days." msgstr "Omtaler af dig vises her i {retentionDays} dage." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Kun omtaler" @@ -20104,7 +21178,7 @@ msgstr "besked" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Besked" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Fejlfinding af besked" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Besked slettet" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Beskedliste for {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Besked fastgjort" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Tidspunkt for besked" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Beskedens fastgørelse fjernet" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Beskeder og medier" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Beskeder slettet" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Moderering" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Moderatorhandlinger og fællesskabsændringer vises her." @@ -20915,16 +21989,51 @@ msgstr "Flyt til" msgid "Move to…" msgstr "Flyt til…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Flyttet fra {oldChannel} til {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Flyttede kanalen fra kategorien {oldCategory} til kategorien {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Flyttede kanalen til kategorien {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Flyttede kanalen til kategorien {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "Flyttede rollen ned på medlemslisten." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "Flyttede rollen ned på rollelisten." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Flyttede rollen til position {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "Flyttede rollen op på medlemslisten." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "Flyttede rollen op på rollelisten." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Ny besked" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Nye beskeder" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "Ingen lokale filer refereret" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Ingen logposter endnu" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "Ingen grund angivet" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "Ingen årsag angivet." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Ingen konvertering" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Ingen konvertering" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "OAuth2-URL-bygger" msgid "Objects" msgstr "Objekter" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Objekter" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Fra" @@ -23523,6 +24636,21 @@ msgstr "Kunne ikke indlæse den originale besked" msgid "Original message was deleted" msgstr "Oprindelig besked blev slettet" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Oprindeligt udelukket af {user} den {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Oprindeligt udelukket af {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Oprindeligt udelukket den {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Sat på pause på grund af reduceret bevægelse. Slå til for at lade an msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "Sat på pause på grund af reduceret bevægelse. Slå til for at afspille GIF'er." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Satte invitationer på pause." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Slet din konto og alle tilknyttede data permanent. Denne handling kan ik msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Fjern permanent beskeder, du har sendt i DM'er, gruppe-DM'er og fællesskaber. Arbejdet udføres i baggrunden, og du får en direkte besked, når det er færdigt." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Tilladelsesoverstyring tilføjet" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Tilladelsesoverstyring fjernet" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Tilladelsesoverstyring opdateret" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Klar til at opgradere?" msgid "Real-time" msgstr "Realtid" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Årsag" @@ -26291,26 +27440,166 @@ msgstr "Rollen {oldLabel} blev fjernet." msgid "Removed roles." msgstr "Roller fjernet." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "Fjernede AFK-kanalen." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Fjernede avataren." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Fjernede kanalen fra dens kategori." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Fjernede kanalen fra kategorien {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Fjernede baggrunden for chat-embeds." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "Fjernede community-banneret." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Fjernede community-ikonet." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "Fjernede teksten til indholdsadvarslen." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Fjernede indholdsadvarslen." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Fjernede det brugerdefinerede rolleikon." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Fjernede den brugerdefinerede advarselstekst." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Fjernede beskrivelsen {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Fjernede baggrunden for invitationen." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Fjernede linket." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Fjernede medlemmets community-profilaccentfarve." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Fjernede medlemmets community-profilavatar." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Fjernede banneret fra medlemmets community-profil." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Fjernede medlemmets community-profilbio." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "Fjernede medlemmets community-profilpronominer." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Fjernede grænsen for beskedhistorik." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "Fjernede kaldenavnet {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "Fjernede overstyringen for {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "Fjernede rollen {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Fjernede rollens farve." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Fjernede rolleikonet." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Fjernede valget af kanal med regler." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "Fjernede valget af systemkanal." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "Fjernede timeouten." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "Fjernede emnet {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Fjernede Unicode-emojien." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Fjernede grænsen for antal deltagere." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "Fjernede det brugerdefinerede invitationslink {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Fjernede timeout fra {targetUserTag}" @@ -26381,6 +27670,11 @@ msgstr "Omdøbte klistermærke til {0}." msgid "Renamed the channel to {0}." msgstr "Omdøbte kanalen til {0}." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Omdøbte fællesskabet fra {oldName} til {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Kræv tofaktorgodkendelse for moderatorer, før de kan udelukke medlemme msgid "Required" msgstr "Påkrævet" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "Krævede 2FA for moderationshandlinger." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Nulstil afstand" msgid "Reset the connection limit." msgstr "Nulstillede forbindelsesgrænsen." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "Nulstillede rollens position på medlemslisten." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Omtale af denne rolle blev begrænset til medlemmer med den nødvendige msgid "Resubscribe" msgstr "Forny abonnement" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Genoptog invitationer." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Tilbage til login" @@ -27330,6 +28639,11 @@ msgstr "Træk denne invitation tilbage? Kan ikke fortrydes." msgid "Revoked {0}." msgstr "Tilbagekaldt {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "Fjernede {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (højre)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Højrejusteret" @@ -27408,7 +28724,7 @@ msgstr "Ringetone" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Rolle" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Rollefarve" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Rolle oprettet" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Rolle oprettet" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Rolle slettet" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "Rollenavn er påkrævet" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Rolle opdateret" @@ -28930,11 +30246,21 @@ msgstr "Sessioner" msgid "Set {fieldNode} to {0}." msgstr "Indstillede {fieldNode} til {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Angav et brugerdefineret rolleikon." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Angiv en tilpasset status" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Angav en position i medlemslisten for rollen." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "Rollefarven blev sat til <0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "Indstillede langsom tilstand til {0} {seconds, plural, one {sekund} other {sekunder}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Angav langsom tilstand til {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Angiv status" msgid "Set the AFK channel to {0}." msgstr "Valgte {0} som AFK-kanal." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "Angav AFK-kanalen til {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "Indstillede AFK-timeouten til {0} sekunder." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "Angav lydkvaliteten til {kbps} kbps." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "Indstillede kanaltypen til {0}." msgid "Set the connection limit to {0}." msgstr "Indstillede forbindelsesgrænsen til {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "Angav indholdsadvarslens tekst til {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "Angav den brugerdefinerede advarselstekst til {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "Angav beskrivelsen til {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "Indstillede invitationskortets placering til {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "Angav linket til {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "Angav medlemmets community-profilaccentfarve til {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "Angav medlemmets community-profilbio til {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "Angav medlemmets community-profilpronominer til {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "Angav grænsen for beskedhistorik til {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "Angav kaldenavnet til {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Angiv det offentlige produktnavn, temafarven og de billedressourcer, som klienterne viser." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "Angav rollens farve til {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "Angav rollens ikon til {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "Valgte {0} som kanal med regler." msgid "Set the system channel to {0}." msgstr "Valgte {0} som systemkanal." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "Angav systemkanalen til {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "Angav emnet til {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "Indstillede grænsen for antal deltagere til {0}." msgid "Set the vanity URL to {0}." msgstr "Indstillede det brugerdefinerede invitationslink til {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "Angav det brugerdefinerede invitationslink til {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "Angav taleregionen til {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "Angav taleregionen til automatisk." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Vis dit globale profilbanner i dette fællesskab" msgid "Show your Visionary as a regular subscription instead" msgstr "Vis dit Visionary som et almindeligt abonnement i stedet" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Viste medlemmer med denne rolle i deres egen sektion på medlemslisten." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Der opstod en fejl under behandlingen af din refusion. Kontakt support, hvis dette fortsætter." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Der opstod en fejl under indlæsning af aktivitetsloggen." @@ -31105,6 +32531,11 @@ msgstr "Start taleopkald" msgid "Start with computer" msgstr "Start sammen med computeren" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "Begyndte at vise medlemmer med denne rolle separat." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "klistermærke" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "Klistermærket kunne ikke komprimeres nok" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Klistermærke oprettet" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Klistermærke slettet" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Klistermærkepladser er fyldt op" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Klistermærke opdateret" @@ -31412,6 +32843,46 @@ msgstr "Stop med at se stream" msgid "Stop." msgstr "Stop." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Holdt op med at tillade fleksible tekstkanalnavne." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Holdt op med at tillade andre at klone dette communitys emojis." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Holdt op med at tillade andre at klone dette communitys klistermærker." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Holdt op med at vise medlemmer med denne rolle separat." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Holdt op med at skjule tilmeldingsbeskeder i systemkanalen." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Stoppede med at skjule ejerens krone i fællesskabet." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Krævede ikke længere 2FA for moderationshandlinger." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Forhindrede medlemmet i at høre andre i dette community." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Synkroniser med kategori" msgid "Syntax highlighting" msgstr "Syntaksfremhævning" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "System" @@ -32449,6 +33922,16 @@ msgstr "Appen er gået ned. Leder efter opdateringer, der måske kan løse probl msgid "The app should now be signed in to your account." msgstr "Du skulle nu være logget ind på din konto i appen." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "Udelukkelsen var allerede udløbet den {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "Udelukkelsen var planlagt til at udløbe den {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "Botten er blevet føjet til <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "Opdateringen til computerappen er downloadet. Genstart {productName} for msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "Den downloadede fil gemmes på din computer. Installer den med din normale pakkehåndtering." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "Emoji'en blev uploadet af {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "Filen indeholder det bekræftelsestoken, vi henter fra <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "Filen, du prøver at uploade, overskrider den maksimale størrelsesgræn msgid "The following people can't be added to this group DM:" msgstr "Følgende personer kan ikke føjes til denne gruppe-DM:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "Invitationen blev oprettet af {user} den {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "Invitationen blev oprettet af {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "Invitationen blev oprettet den {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "Invitationen blev aldrig brugt." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "Invitationen var planlagt til at udløbe den {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "Invitationen blev sat til at tillade ubegrænsede anvendelser." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "Invitationen blev sat til at udløbe efter {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "Invitationen blev sat til at give midlertidigt medlemskab." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "Invitationen blev sat til aldrig at udløbe." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "Det sprog, de fleste i dit fællesskab taler. Bruges til at filtrere resultater i Opdag." @@ -32518,6 +34051,11 @@ msgstr "Linket fungerer muligvis stadig. Prøv igen om et øjeblik." msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "Adgangsbekræftelsen for indhold for voksne blev annulleret. Du kan lukke denne fane og prøve igen fra appen." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "Medlemmet er ikke længere midlertidigt." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "Den nye pris er allerede planlagt til {effectiveDate}." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "Den nye talekanal genbruger tilladelser, deltagergrænse og bithastighed fra <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "Overstyringen tillod {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "Overstyringen nægtede {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "Siden du leder efter, findes ikke eller er blevet flyttet." @@ -32565,6 +34113,11 @@ msgstr "Den angivne redirect_uri er ikke registreret for denne applikation." msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "Den angivne redirect_uri skal bruge HTTP eller HTTPS." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "Rollen gav {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "Klistermærket blev uploadet som animeret." msgid "The sticker was uploaded as static." msgstr "Klistermærket blev uploadet som statisk." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "Klistermærket blev uploadet af {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "Systemet gav {target} rollen {role}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "Systemet fjernede rollen {role} fra {target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "Brugernavnet <0>{fluxerTag} er allerede i brug. Hvis du fortsætter, msgid "The verification code is invalid or expired." msgstr "Bekræftelseskoden er ugyldig eller udløbet." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "Webhooken blev oprettet af {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Dette kort er ikke fra dit faktureringsland, så det kan ikke bruges til denne lokale valuta. Brug et lokalt kort, eller vend tilbage til {productName} og vælg en anden betalingsmetode." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "Denne kategori indeholder allerede det maksimale antal på {maxChannelsPerCategory} kanaler." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Hold styr på moderatorers handlinger i fællesskabet." @@ -33953,6 +35526,11 @@ msgstr "Overfør gruppeejerskab til {userName}?" msgid "Transfer ownership" msgstr "Overfør ejerskab" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Overførte ejerskabet af fællesskabet til {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Slå privatlivsbeskyttelse under streaming til" msgid "Turn text smileys into emoji" msgstr "Erstat tekstsmileyer med emojis" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Deaktiverede indhold for voksne." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Deaktiverede langsom tilstand." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "Deaktiverede indholdsadvarslen." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Deaktiverede det frakoblede banner." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Slog mikrofonen fra for medlemmet i dette community." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Aktiverede indhold for voksne." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "Aktiverede indholdsadvarslen." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Aktiverede det frakoblede banner." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "Slog mikrofonen til igen for medlemmet i dette community." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Hvis du fjerner adgangsområder, fungerer appen muligvis ikke korrekt." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "Ukrainsk" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Kunne ikke indlæse aktivitetslogge" @@ -34859,6 +36482,7 @@ msgstr "Ukendt mål" msgid "unknown user" msgstr "ukendt bruger" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "ukendt bruger" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Bruges kun i dette fællesskab." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Vermont" msgid "Version" msgstr "Version" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Meget højt" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Webcam" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Webhook oprettet" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhook slettet" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Webhook-navn" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhook opdateret" diff --git a/fluxer_app/src/features/i18n/locales/de/messages.po b/fluxer_app/src/features/i18n/locales/de/messages.po index 10b0ee1c8..6bfc55b6f 100644 --- a/fluxer_app/src/features/i18n/locales/de/messages.po +++ b/fluxer_app/src/features/i18n/locales/de/messages.po @@ -56,6 +56,31 @@ msgstr "{a} schreibt …" msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} und {c} schreiben …" +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} hat eine Berechtigungsüberschreibung für {user} in {channel} hinzugefügt." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} hat eine Berechtigungsüberschreibung für @everyone in {channel} hinzugefügt." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} hat eine Berechtigungsüberschreibung für die Rolle {role} in {channel} hinzugefügt." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} hat einen Sticker hinzugefügt." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} hat ein Emoji hinzugefügt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} hat Kanalberechtigungen für {targetEntity} in {channelNode} hinzugefügt." @@ -64,35 +89,200 @@ msgstr "{actor} hat Kanalberechtigungen für {targetEntity} in {channelNode} hin msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} hat Kanalberechtigungen für {targetEntity} hinzugefügt." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} hat den Bot {target} als temporäres Mitglied hinzugefügt." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} hat den Bot {target} hinzugefügt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} hat den Bot {targetMember} hinzugefügt." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} hat das Emoji {emoji} hinzugefügt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} hat das Emoji {namedTarget} hinzugefügt." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} hat den Sticker {name} hinzugefügt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} hat den Sticker {namedTarget} hinzugefügt." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} hat {target} für {duration} gebannt." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} hat {target} gebannt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} hat {targetMember} gebannt." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} hat die Sperre von {target} für das Senden von Nachrichten, Reaktionen und das Beitreten zu Sprachkanälen so geändert, dass sie am {date} endet." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} hat den Spitznamen von {target} von {oldNick} zu {newNick} geändert." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} hat die Berechtigungsüberschreibungen der Kategorie {channel} geändert." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} hat die Berechtigungsüberschreibungen des Kanals {channel} geändert." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} hat die Berechtigungsüberschreibungen des Link-Kanals {channel} geändert." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} hat die Berechtigungsüberschreibungen des Textkanals {channel} geändert." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} hat die Berechtigungsüberschreibungen des Sprachkanals {channel} geändert." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} hat die Vanity-URL von {oldCode} zu {newCode} geändert." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} hat das Profilbild seines Community-Profils geändert." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} hat das Banner seines Community-Profils geändert." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} hat die Biografie seines Community-Profils auf {text} geändert." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} hat seinen Spitznamen von {oldNick} zu {newNick} geändert." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} hat einen Webhook erstellt." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} hat die Kategorie {channel} erstellt." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} hat den Kanal {channel} in {category} erstellt." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} hat den Kanal {channel} erstellt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} hat den Kanal {namedTarget} erstellt." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} hat die Einladung {code} für {channel} erstellt." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} hat die Einladung {code} erstellt." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} hat die Einladung {namedTarget}{0} erstellt." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} hat den Link-Kanal {channel} in {category} erstellt." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} hat den Link-Kanal {channel} erstellt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} hat die Rolle \"{namedTarget}\" erstellt." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} hat die Rolle {role} erstellt." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} hat den Textkanal {channel} in {category} erstellt." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} hat den Textkanal {channel} erstellt." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} hat den Sprachkanal {channel} in {category} erstellt." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} hat den Sprachkanal {channel} erstellt." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} hat den Webhook {name} in {channel} erstellt." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} hat den Webhook {name} erstellt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} hat den Webhook \"{namedTarget}\" erstellt." @@ -103,49 +293,209 @@ msgstr "{actor} hat den Webhook \"{namedTarget}\" erstellt." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} hat {0} {bulkCount, plural, one {Nachricht} other {Nachrichten}}{1} gelöscht." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} hat {count, plural, one {# Nachricht} other {# Nachrichten}} in {channel} gelöscht." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} hat {count, plural, one {# Nachricht} other {# Nachrichten}} gelöscht." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} hat eine Nachricht in {channel} gelöscht." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} hat eine Nachricht gelöscht." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} hat eine Nachricht{0} gelöscht." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} hat einen Sticker gelöscht." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} hat einen Webhook gelöscht." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} hat ein Emoji gelöscht." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} hat mehrere Nachrichten{0} gelöscht." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} hat einige Nachrichten in {channel} gelöscht." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} hat einige Nachrichten gelöscht." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} hat die Kategorie {channel} gelöscht." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} hat den Kanal {channel} gelöscht." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} hat den Kanal \"{namedTarget}\" gelöscht." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} hat das Emoji {emoji} gelöscht." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} hat das Emoji \"{namedTarget}\" gelöscht." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} hat die Einladung {code} für {channel} gelöscht." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} hat die Einladung {code} gelöscht." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} hat die Einladung {namedTarget}{0} gelöscht." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} hat den Link-Kanal {channel} gelöscht." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} hat die Rolle \"{namedTarget}\" gelöscht." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} hat die Rolle {role} gelöscht." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} hat den Sticker {name} gelöscht." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} hat den Sticker \"{namedTarget}\" gelöscht." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} hat den Textkanal {channel} gelöscht." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} hat den Sprachkanal {channel} gelöscht." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} hat den Webhook {name} aus {channel} gelöscht." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} hat den Webhook {name} gelöscht." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} hat den Webhook \"{namedTarget}\" gelöscht." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} hat {target} aus {channel} getrennt." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} hat {target} aus dem Sprachkanal getrennt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} hat {targetMember} vom Sprachkanal getrennt." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} hat die Verbindung zu {channel} getrennt." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} hat die Sprachverbindung getrennt." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} hat {target} die Rolle {role} gegeben." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} hat {target} gekickt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} hat {targetMember} gekickt." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} hat {target} wieder erlaubt, andere in dieser Community zu hören." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} hat eine Änderung vorgenommen, die diese Version der App nicht anzeigen kann." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} hat {target} von {oldChannel} nach {newChannel} verschoben." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} hat {target} nach {channel} verschoben." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} hat {target} in einen anderen Sprachkanal verschoben." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} hat {targetMember} nach {channelNode} verschoben." @@ -154,16 +504,68 @@ msgstr "{actor} hat {targetMember} nach {channelNode} verschoben." msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} hat {targetMember} in einen anderen Sprachkanal verschoben." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} ist von {oldChannel} zu {newChannel} gewechselt." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} hat die Rolle {role} in der Mitgliederliste nach unten verschoben." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} hat die Rolle {role} in der Rollenliste nach unten verschoben." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} hat die Rolle {role} in der Mitgliederliste nach oben verschoben." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} hat die Rolle {role} in der Rollenliste nach oben verschoben." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} ist zu {channel} gewechselt." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} hat den Sprachkanal gewechselt." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} hat Einladungen pausiert." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} hat eine Audit-Aktion für {targetEntity} durchgeführt." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} hat eine Nachricht in {channel} angepinnt." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} hat eine Nachricht angepinnt." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} hat eine Nachricht{0} angepinnt." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} hat inaktive Mitglieder entfernt." @@ -179,19 +581,249 @@ msgstr "{actor} hat die Kanalberechtigungen für {targetEntity} in {channelNode} msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} hat die Kanalberechtigungen für {targetEntity} entfernt." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} hat den Spitznamen {nick} von {target} entfernt." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} hat die Berechtigungsüberschreibung für {user} aus {channel} entfernt." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} hat die Berechtigungsüberschreibung für @everyone aus {channel} entfernt." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} hat die Berechtigungsüberschreibung für die Rolle {role} aus {channel} entfernt." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} hat die Rolle {role} von {target} entfernt." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} hat das Timeout für {target} aufgehoben." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} hat die Vanity-URL {code} entfernt." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} hat die Akzentfarbe seines Community-Profils entfernt." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} hat das Profilbild seines Community-Profils entfernt." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} hat das Banner seines Community-Profils entfernt." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} hat die Biografie seines Community-Profils entfernt." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} hat die Pronomen seines Community-Profils entfernt." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} hat seinen Spitznamen {nick} entfernt." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} hat die Kategorie {oldName} in {newName} umbenannt." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} hat den Kanal {oldName} in {newName} umbenannt." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} hat die Community von {oldName} zu {newName} umbenannt." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} hat das Emoji {oldEmoji} in {newEmoji} umbenannt." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} hat den Link-Kanal {oldName} in {newName} umbenannt." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} hat die Rolle {oldName} in {newName} umbenannt." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} hat den Sticker {oldName} in {newName} umbenannt." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} hat den Textkanal {oldName} in {newName} umbenannt." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} hat den Sprachkanal {oldName} in {newName} umbenannt." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} hat den Webhook {oldName} in {newName} umbenannt." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} hat die Position in der Mitgliederliste für die Rolle {role} zurückgesetzt." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} hat Einladungen wieder aktiviert." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} hat eine Position in der Mitgliederliste für die Rolle {role} festgelegt." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} hat {target} den Spitznamen {nick} gegeben." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} hat die Vanity-URL auf {code} geändert." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} hat die Akzentfarbe seines Community-Profils auf {color} gesetzt." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} hat das Profilbild für sein Community-Profil festgelegt." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} hat das Banner für sein Community-Profil festgelegt." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} hat die Biografie seines Community-Profils auf {text} gesetzt." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} hat die Pronomen für sein Community-Profil auf {text} gesetzt." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} hat seinen Spitznamen auf {nick} geändert." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} hat {target} daran gehindert, andere in dieser Community zu hören." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} hat ein Timeout für {target} bis zum {date} verhängt." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} hat die Community-Inhaberschaft an {user} übertragen." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} hat das Mikrofon von {target} in dieser Community wieder eingeschaltet." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} hat das Mikrofon von {target} in dieser Community ausgeschaltet." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} hat {target} entbannt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} hat {targetMember} entbannt." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} hat die Anheftung einer Nachricht in {channel} aufgehoben." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} hat die Anheftung einer Nachricht aufgehoben." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} hat die Anheftung einer Nachricht{0} aufgehoben." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} hat {target} aktualisiert." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} hat die Eigenschaften von {targetMember} geändert." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} hat einen Sticker aktualisiert." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} hat einen Webhook aktualisiert." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} hat ein Emoji aktualisiert." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} hat die Kanalberechtigungen für {targetEntity} in {channelNode} geändert." @@ -204,35 +836,112 @@ msgstr "{actor} hat die Kanalberechtigungen für {targetEntity} geändert." msgid "{actor} updated roles for {targetMember}." msgstr "{actor} hat die Rollen für {targetMember} geändert." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} hat die Kategorie {channel} aktualisiert." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} hat den Kanal {channel} aktualisiert." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} hat den Kanal {namedTarget} geändert." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} hat die Community-Einstellungen geändert." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} hat das Emoji {emoji} aktualisiert." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} hat das Emoji {namedTarget} geändert." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} hat die Einladung {code} aktualisiert." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} hat die Einladung {namedTarget}{0} aktualisiert." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} hat den Link-Kanal {channel} aktualisiert." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} hat die Berechtigungsüberschreibung für {user} in {channel} aktualisiert." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} hat die Berechtigungsüberschreibung für @everyone in {channel} aktualisiert." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} hat die Berechtigungsüberschreibung für die Rolle {role} in {channel} aktualisiert." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} hat die Rolle \"{namedTarget}\" aktualisiert." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} hat die Rolle {role} aktualisiert." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} hat die Rollen von {target} aktualisiert." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} hat den Sticker {name} aktualisiert." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} hat den Sticker \"{namedTarget}\" aktualisiert." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} hat den Textkanal {channel} aktualisiert." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} hat den Sprachkanal {channel} aktualisiert." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} hat den Webhook {name} aktualisiert." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} hat den Webhook \"{namedTarget}\" aktualisiert." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} hat sein Community-Profil aktualisiert." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# Element} other {# Elemente}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# Mitglied} other {# Mitglieder}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# weitere Berechtigung} other {# weitere Berechtigungen}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# gemeinsame Community} other {# gemeinsame Communitys}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {# Gerät anzeigen} other {# Geräte anzeigen}}" msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Abmelden von # Gerät} other {Abmelden von # Geräten}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {Die Einladung war auf # Nutzung beschränkt.} other {Die Einladung war auf # Nutzungen beschränkt.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {Die Einladung wurde # Mal verwendet.} other {Die Einladung wurde # Mal verwendet.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "{guildName}-Kanäle" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Aktivität" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Aktivitätsprotokoll" @@ -2713,10 +3437,60 @@ msgstr "{0} hinzugefügt." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "{length, plural, one {# lokaler Dateiverweis hinzugefügt} other {# lokale Dateiverweise hinzugefügt}}." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "Chat-Embed-Hintergrund hinzugefügt." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Banner hinzugefügt." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Ein Community-Symbol wurde hinzugefügt." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "Eine Inhaltswarnung mit dem Text {text} hinzugefügt." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Eine Inhaltswarnung hinzugefügt." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "Avatar hinzugefügt." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Einladungs-Hintergrund hinzugefügt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Rollen hinzugefügt." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Das Community-Profilbild des Mitglieds hinzugefügt." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Das Community-Profilbanner des Mitglieds hinzugefügt." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "Die Rolle {role} hinzugefügt." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Ausrichtungsoptionen sind nur auf breiteren Bildschirmen verfügbar" #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Alle <0/>, für immer. Keine Abrechnung, keine Verlängerungen." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Alle Aktionen" @@ -3001,10 +3775,12 @@ msgstr "Alle Sprachen" msgid "All members" msgstr "Alle Mitglieder" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "Gesamter Zeitraum" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Alle Nutzer" @@ -3197,6 +3973,16 @@ msgstr "\"{0}\" erlaubt und \"{1}\" nicht mehr erlaubt." msgid "Allowed {0}." msgstr "\"{0}\" erlaubt." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "{permissions} erlaubt." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Allen Mitgliedern erlaubt, diese Rolle zu erwähnen." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Erlaubte Anrufer" @@ -3205,15 +3991,35 @@ msgstr "Erlaubte Anrufer" msgid "Allowed everyone to mention this role." msgstr "Allen wurde erlaubt, diese Rolle zu erwähnen." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Flexible Text-Kanalnamen erlaubt." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Erlaubte Einladungen" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Anderen erlaubt, die Emojis dieser Community zu klonen." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Anderen erlaubt, die Sticker dieser Community zu klonen." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Zulässige Weiterleitungen" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Bis zu {count, plural, one {# Verbindung} other {# Verbindungen}} pro Mitglied erlaubt." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Mitglieder bannen" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Mitglieder aus der Community ausschließen, mit der Option, ihre letzten Nachrichten zu löschen." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Bann-Grund" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Nutzer blockieren" msgid "Blocked" msgstr "Blockiert" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Das Mitglied bis {date} daran gehindert, Nachrichten zu senden, zu reagieren und Sprachkanälen beizutreten." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Bot" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Bot hinzugefügt" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Kategorie gelöscht" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Kategorie voll" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Zentrieren" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Zentriert" @@ -6298,11 +7116,183 @@ msgstr "Benutzernamen ändern" msgid "Changed nickname from {0} to {1}." msgstr "Spitznamen von {0} in {1} geändert." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Slowmode von {oldDuration} auf {newDuration} geändert." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "AFK-Kanal von {oldChannel} zu {newChannel} geändert." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "AFK-Timeout von {oldDuration} auf {newDuration} geändert." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "Die Audioqualität wurde von {oldKbps} kbps auf {newKbps} kbps geändert." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Das Profilbild geändert." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Bitrate geändert zu {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Die Sperre für das Senden von Nachrichten, Reaktionen und das Beitreten zu Sprachkanälen wurde geändert und endet am {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Chat-Hintergrund geändert." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Banner der Community geändert." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Das Community-Symbol wurde geändert." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "Verbindungen pro Mitglied von {oldCount} auf {newCount} geändert." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "Den Text der Inhaltswarnung von {oldText} zu {newText} geändert." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Das benutzerdefinierte Rollensymbol wurde geändert." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Der benutzerdefinierte Warntext wurde von {oldText} zu {newText} geändert." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "Die Standardbenachrichtigungseinstellung wurde von {oldSetting} auf {newSetting} geändert." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Die Beschreibung wurde von {oldText} zu {newText} geändert." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Der Filter für explizite Inhalte wurde von {oldFilter} auf {newFilter} geändert." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Die Ausrichtung des Einladungs-Hintergrundbilds wurde von {oldAlignment} auf {newAlignment} geändert." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Einladungs-Hintergrund geändert." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "Den Link von {oldUrl} zu {newUrl} geändert." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Das Community-Profilbild des Mitglieds geändert." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Banner des Community-Profils des Mitglieds geändert." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "Die Biografie des Community-Profils des Mitglieds wurde auf {text} geändert." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "Die Nachrichtenverlaufsgrenze wurde von {oldDate} auf {newDate} geändert." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "Den Namen von {oldName} zu {newName} geändert." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "Den Spitznamen von {oldNick} zu {newNick} geändert." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Die Rollenfarbe wurde von {oldColor} zu {newColor} geändert." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Das Rollensymbol wurde von {oldEmoji} zu {newEmoji} geändert." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "Systemkanal von {oldChannel} zu {newChannel} geändert." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Das Thema wurde von {oldText} zu {newText} geändert." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "Die Nutzerbeschränkung wurde von {oldCount} auf {newCount} geändert." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "Die Vanity-URL von {oldCode} zu {newCode} geändert." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Die Verifizierungsstufe wurde von {oldLevel} auf {newLevel} geändert." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "Die Sprachregion wurde von {oldRegion} zu {newRegion} geändert." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "Kanal" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Kanal oder Kategorie" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Berechtigungsüberschreibung für den Kanal hinzugefügt" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Berechtigungsüberschreibung für den Kanal entfernt" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Berechtigungsüberschreibung für den Kanal aktualisiert" @@ -7815,7 +8805,7 @@ msgstr "Communitys mit über 250 Mitgliedern werden automatisch auf die Einstell #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Eigene Nachrichten in dieser Unterhaltung löschen?" msgid "Deleted" msgstr "Gelöscht" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "Den Nachrichtenverlauf des Mitglieds für den Zeitraum {duration} gelöscht." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Gelöschter Text" msgid "Deleted your messages." msgstr "Nachrichten gelöscht." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "gelöschte-kategorie" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "gelöschter-kanal" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "gelöschte-rolle" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "{0} verweigert und die Verweigerung für {1} aufgehoben." msgid "Denied {0}." msgstr "{0} verweigert." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "{permissions} verweigert." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Einbettungen nicht unterdrückt" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Emoji-Klonen aktiviert" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Emoji erstellt" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Emoji gelöscht" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Emoji-Slots voll" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Emoji aktualisiert" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Nach Erstellungsdatum des Accounts filtern" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Nach Aktion filtern" @@ -14572,18 +15587,22 @@ msgstr "Nach Rollen filtern" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Nach Nutzer filtern" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Alle filtern" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Mitglieder ohne Rollen filtern" @@ -15890,6 +16909,11 @@ msgstr "{0} gewährt und {1} entzogen." msgid "Granted {0}." msgstr "{0} gewährt." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "{permissions} gewährt." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Hallo {username}! Wir hoffen, dir gefällt es hier." msgid "Hey, {username}, welcome aboard!" msgstr "Hallo, {username}, willkommen an Bord!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Beitrittsnachrichten im Systemkanal ausgeblendet." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Die Krone des Community-Eigentümers wurde ausgeblendet." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Eigene Kamera ausblenden?" msgid "Hide your own screen share?" msgstr "Eigene Bildschirmfreigabe ausblenden?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Hoch" @@ -17688,7 +18724,7 @@ msgstr "Einladen" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "Einladungscode ist {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Einladung erstellt" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Einladung gelöscht" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Einladung nicht verfügbar" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Einladung aktualisiert" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (links)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Linksbündig" @@ -18745,6 +19783,11 @@ msgstr "Bildschirmleser neue Nachrichten ankündigen lassen, sobald sie im geöf msgid "Let the community self-moderate" msgstr "Community selbst moderieren lassen" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Dem Mitglied wieder erlaubt, andere in dieser Community zu hören." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Ermöglicht es benutzerdefiniertem CSS, nach dem Neustart der Desktop-App transparente Fensterbereiche anzuzeigen." @@ -18815,6 +19858,16 @@ msgstr "Mit „Gefällt mir“ markiert." msgid "Likes: <0>{countLabel}" msgstr "Gefällt mir: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "Erwähnungen dieser Rolle auf Mitglieder beschränkt, die jede Rolle erwähnen dürfen." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Auf {count, plural, one {# Nutzer} other {# Nutzer}} begrenzt." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Louisiana" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Niedrig" @@ -19204,6 +20259,11 @@ msgstr "macOS-Standard" msgid "macOS permissions" msgstr "macOS-Berechtigungen" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Für den Kanal die Einstellung für nicht jugendfreie Inhalte auf \"Übernehmen\" gesetzt." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Emoji als animiert markiert." msgid "Marked emoji as static." msgstr "Emoji als statisch markiert." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Den Kanal für nicht jugendfreie Inhalte markiert." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Den Kanal als jugendfrei markiert." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "Mitglied als permanent markiert." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Wiedergabe stoppen" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Mittel" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Mittel (Standard)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Mitglied" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Aktionen für {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Mitglied gebannt" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Sprachverbindung des Mitglieds getrennt" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Mitglied entfernt" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Mitgliederlisten sind in dieser Community vorübergehend nicht verfügbar" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Mitglied verschoben" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Mitglied nicht gefunden" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Mitgliederrollen aktualisiert" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Mitglied seit" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Mitglied entbannt" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Mitglied aktualisiert" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Mitglieder werden entfernt, wenn sie offline sind, es sei denn, sie haben eine Rolle." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Mitglieder entfernt" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "Mitglieder ohne die Berechtigung \"{readMessageHistoryPermissionLabel}\" können Nachrichten sehen, die nach diesem Datum gesendet wurden." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Mitglieder, ausgewählt" @@ -20077,8 +21149,10 @@ msgstr "Erwähnungen von dir werden hier für {recentMentionsRetentionDays} Tage msgid "Mentions of you show up here for {retentionDays} days." msgstr "Erwähnungen von dir werden hier für {retentionDays} Tage angezeigt." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Nur Erwähnungen" @@ -20104,7 +21178,7 @@ msgstr "Nachricht" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Nachricht" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Nachricht debuggen" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Nachricht gelöscht" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Nachrichtenliste für {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Nachricht angepinnt" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Nachrichtenzeit" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Anheftung der Nachricht aufgehoben" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Nachrichten & Medien" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Nachrichten gelöscht" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Moderation" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Moderationsaktionen und Community-Änderungen werden hier angezeigt." @@ -20915,16 +21989,51 @@ msgstr "Verschieben nach" msgid "Move to…" msgstr "Verschieben nach…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Verschoben von {oldChannel} zu {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Den Kanal von der Kategorie {oldCategory} zur Kategorie {newCategory} verschoben." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Kanal in die Kategorie {category} verschoben." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Kanal in die Kategorie \"{0}\" verschoben." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "Die Rolle in der Mitgliederliste nach unten verschoben." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "Die Rolle in der Rollenliste nach unten verschoben." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Die Rolle an Position {0} verschoben." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "Die Rolle in der Mitgliederliste nach oben verschoben." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "Die Rolle in der Rollenliste nach oben verschoben." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Neue Nachricht" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Neue Nachrichten" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "Keine lokalen Dateien referenziert" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Noch keine Protokolle" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "Kein Grund angegeben" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "Kein Grund angegeben." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Nicht konvertieren" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Nicht konvertieren" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "OAuth2-URL-Generator" msgid "Objects" msgstr "Objekte" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Objekte" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Aus" @@ -23523,6 +24636,21 @@ msgstr "Originalnachricht konnte nicht geladen werden" msgid "Original message was deleted" msgstr "Originalnachricht wurde gelöscht" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Ursprünglich gebannt von {user} am {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Ursprünglich gebannt von {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Ursprünglich gebannt am {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Angehalten durch reduzierte Bewegung. Einschalten, um animierte Emojis w msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "Angehalten durch reduzierte Bewegung. Einschalten, damit GIFs weiter abgespielt werden." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Einladungen pausiert." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Deinen Account und alle damit verbundenen Daten dauerhaft löschen. Dies msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Entfernt dauerhaft Nachrichten, die du in DMs, Gruppen-DMs und Communitys gesendet hast. Der Vorgang läuft im Hintergrund und du erhältst eine DM, wenn er abgeschlossen ist." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Berechtigungsüberschreibung hinzugefügt" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Berechtigungsüberschreibung entfernt" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Berechtigungsüberschreibung aktualisiert" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Bereit zum Upgrade?" msgid "Real-time" msgstr "Echtzeit" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Grund" @@ -26291,26 +27440,166 @@ msgstr "Rolle \"{oldLabel}\" entfernt." msgid "Removed roles." msgstr "Rollen entfernt." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "Der AFK-Kanal wurde entfernt." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Avatar entfernt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Hat den Kanal aus seiner Kategorie entfernt." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Kanal aus der Kategorie {category} entfernt." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Chat-Hintergrund entfernt." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "Das Community-Banner wurde entfernt." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Das Community-Symbol wurde entfernt." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "Der Text der Inhaltswarnung wurde entfernt." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Die Inhaltswarnung wurde entfernt." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Das benutzerdefinierte Rollensymbol wurde entfernt." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Der benutzerdefinierte Warntext wurde entfernt." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Die Beschreibung {text} wurde entfernt." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Einladungs-Hintergrund entfernt." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Den Link entfernt." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Die Akzentfarbe des Community-Profils des Mitglieds wurde entfernt." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Das Community-Profilbild des Mitglieds wurde entfernt." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Banner des Community-Profils des Mitglieds entfernt." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Die Biografie des Community-Profils des Mitglieds wurde entfernt." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "Die Pronomen des Community-Profils des Mitglieds wurden entfernt." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Die Nachrichtenverlaufsgrenze wurde entfernt." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "Den Spitznamen {nick} entfernt." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "Die Überschreibung für {permissions} wurde entfernt." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "Die Rolle {role} wurde entfernt." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Die Rollenfarbe wurde entfernt." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Das Rollensymbol wurde entfernt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Regelkanal entfernt." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "Der Systemkanal wurde entfernt." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "Timeout entfernt." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "Das Thema {text} entfernt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Unicode-Emoji entfernt." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Nutzerlimit entfernt." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "Die Vanity-URL {code} wurde entfernt." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Timeout für {targetUserTag} aufgehoben" @@ -26381,6 +27670,11 @@ msgstr "Sticker umbenannt in \"{0}\"." msgid "Renamed the channel to {0}." msgstr "Hat den Kanal umbenannt in \"{0}\"." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Die Community wurde von {oldName} in {newName} umbenannt." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Zwei-Faktor-Authentifizierung für Moderatoren verlangen, bevor sie Nutz msgid "Required" msgstr "Erforderlich" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "2FA für Moderationsaktionen erforderlich." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Abstand zurücksetzen" msgid "Reset the connection limit." msgstr "Verbindungslimit zurückgesetzt." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "Die Position in der Mitgliederliste für die Rolle zurückgesetzt." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Erwähnungen dieser Rolle wurden auf Mitglieder mit der nötigen Berecht msgid "Resubscribe" msgstr "Erneut abonnieren" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Einladungen wieder aufgenommen." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Zurück zur Anmeldung" @@ -27330,6 +28639,11 @@ msgstr "Einladung widerrufen? Dies kann nicht rückgängig gemacht werden." msgid "Revoked {0}." msgstr "{0} entzogen." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "Berechtigungen {permissions} entzogen." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (rechts)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Rechtsbündig" @@ -27408,7 +28724,7 @@ msgstr "Klingelton" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Rolle" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Rollenfarbe" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Rolle erstellt" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Rolle erfolgreich erstellt" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Rolle gelöscht" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "Rollenname ist erforderlich" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Rolle aktualisiert" @@ -28930,11 +30246,21 @@ msgstr "Sitzungen" msgid "Set {fieldNode} to {0}." msgstr "{fieldNode} auf {0} gesetzt." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Ein benutzerdefiniertes Rollensymbol festgelegt." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Einen eigenen Status festlegen" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Eine Position in der Mitgliederliste für die Rolle festgelegt." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "Rollenfarbe auf <0>{hex} <1/> gesetzt." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "Slow-Modus auf {0} {seconds, plural, one {Sekunde} other {Sekunden}} gesetzt." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Slowmode auf {duration} gesetzt." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Status festlegen" msgid "Set the AFK channel to {0}." msgstr "AFK-Kanal auf {0} gesetzt." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "Den AFK-Kanal auf {channel} gesetzt." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "AFK-Timeout in Sekunden auf {0} gesetzt." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "Die Audioqualität wurde auf {kbps} kbps eingestellt." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "Kanaltyp auf {0} gesetzt." msgid "Set the connection limit to {0}." msgstr "Verbindungslimit auf {0} gesetzt." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "Den Text der Inhaltswarnung auf {text} gesetzt." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "Den benutzerdefinierten Warntext auf {text} gesetzt." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "Die Beschreibung wurde auf {text} gesetzt." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "Ausrichtung des Einladungshintergrunds auf {0} gesetzt." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "Den Link auf {url} gesetzt." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "Die Akzentfarbe des Community-Profils des Mitglieds wurde auf {color} gesetzt." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "Die Biografie des Community-Profils des Mitglieds wurde auf {text} festgelegt." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "Die Pronomen des Community-Profils des Mitglieds auf {text} gesetzt." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "Die Nachrichtenverlaufsgrenze wurde auf {date} festgelegt." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "Den Spitznamen auf {nick} geändert." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Lege den öffentlichen Produktnamen, die Designfarbe und die Bild-Assets fest, die Clients anzeigen." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "Die Rollenfarbe auf {color} gesetzt." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "Das Rollensymbol wurde auf {emoji} gesetzt." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "Regelkanal auf {0} gesetzt." msgid "Set the system channel to {0}." msgstr "Systemkanal auf {0} gesetzt." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "Den Systemkanal auf {channel} festgelegt." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "Das Thema auf {text} gesetzt." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "Nutzerlimit auf {0} gesetzt." msgid "Set the vanity URL to {0}." msgstr "Die Vanity-URL wurde auf {0} gesetzt." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "Die Vanity-URL wurde auf {code} gesetzt." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "Die Sprachregion wurde auf {region} gesetzt." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "Die Sprachregion auf automatisch gesetzt." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Zeige dein globales Profilbanner in dieser Community" msgid "Show your Visionary as a regular subscription instead" msgstr "Dein Visionary stattdessen als reguläres Abo anzeigen" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Mitglieder mit dieser Rolle in einem eigenen Abschnitt der Mitgliederliste angezeigt." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Bei der Rückerstattung ist ein Fehler aufgetreten. Kontaktiere den Support, falls dies weiterhin passiert." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Beim Laden des Aktivitätsprotokolls ist ein Fehler aufgetreten." @@ -31105,6 +32531,11 @@ msgstr "Sprachanruf starten" msgid "Start with computer" msgstr "Beim Computerstart ausführen" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "Mitglieder mit dieser Rolle werden jetzt separat angezeigt." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "Sticker" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "Sticker konnte nicht ausreichend komprimiert werden" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Sticker erstellt" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Sticker gelöscht" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Sticker-Slots voll" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Sticker aktualisiert" @@ -31412,6 +32843,46 @@ msgstr "Stream nicht mehr ansehen" msgid "Stop." msgstr "Stopp." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Flexible Text-Kanalnamen sind nicht mehr erlaubt." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Anderen wurde das Klonen der Emojis dieser Community untersagt." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Anderen wurde das Klonen der Sticker dieser Community untersagt." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Mitglieder mit dieser Rolle werden nicht mehr separat angezeigt." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Das Ausblenden von Beitrittsnachrichten im Systemkanal wurde beendet." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Das Ausblenden der Krone des Community-Eigentümers wurde beendet." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "2FA für Moderationsaktionen ist nicht mehr erforderlich." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Das Mitglied daran gehindert, andere in dieser Community zu hören." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Mit Kategorie synchronisieren" msgid "Syntax highlighting" msgstr "Syntaxhervorhebung" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "System" @@ -32449,6 +33922,16 @@ msgstr "Die App ist abgestürzt. Es wird nach Updates gesucht, die das Problem b msgid "The app should now be signed in to your account." msgstr "Die App sollte jetzt bei deinem Account angemeldet sein." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "Der Bann war bereits am {date} abgelaufen." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "Der Bann sollte am {date} ablaufen." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "Der Bot wurde zu <0>{destinationName} hinzugefügt." @@ -32491,6 +33974,11 @@ msgstr "Das Desktop-Update wurde heruntergeladen. Starte {productName} neu, um d msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "Die heruntergeladene Datei ist auf deinem Computer gespeichert. Installiere sie mit deinem üblichen Paketmanager." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "Das Emoji wurde von {user} hochgeladen." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "Die Datei enthält den Verifizierungs-Token, den wir von <0>{dnsUrl} abrufen werden." @@ -32504,6 +33992,51 @@ msgstr "Die Datei, die du hochladen möchtest, überschreitet die maximale Grö msgid "The following people can't be added to this group DM:" msgstr "Die folgenden Personen können dieser Gruppen-DM nicht hinzugefügt werden:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "Die Einladung wurde von {user} am {date} erstellt." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "Die Einladung wurde von {user} erstellt." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "Die Einladung wurde am {date} erstellt." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "Die Einladung wurde nie verwendet." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "Die Einladung sollte am {date} ablaufen." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "Der Einladung wurden unbegrenzte Nutzungen zugewiesen." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "Die Einladung sollte nach {duration} ablaufen." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "Die Einladung wurde so eingestellt, dass sie eine temporäre Mitgliedschaft gewährt." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "Die Einladung sollte nie ablaufen." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "Die Sprache, die die meisten Mitglieder deiner Community sprechen. Wird zum Filtern der Ergebnisse unter „Entdecken“ verwendet." @@ -32518,6 +34051,11 @@ msgstr "Der Link funktioniert möglicherweise noch. Versuche es gleich erneut." msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "Die Altersprüfung für nicht jugendfreie Inhalte wurde abgebrochen. Du kannst diesen Tab schließen und es erneut über die App versuchen." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "Das Mitglied ist nicht mehr temporär." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "Der neue Preis ist bereits für den {effectiveDate} geplant." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "Der neue Sprachkanal übernimmt die Berechtigungen, das Nutzerlimit und die Bitrate von <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "Die Berechtigungsüberschreibung erlaubte {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "Die Berechtigungsüberschreibung verweigerte {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "Die Seite, die du suchst, existiert nicht oder wurde verschoben." @@ -32565,6 +34113,11 @@ msgstr "Die angegebene redirect_uri ist für diese Anwendung nicht registriert." msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "Die angegebene redirect_uri muss HTTP oder HTTPS verwenden." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "Die Rolle gewährte {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "Der Sticker wurde als animiert hochgeladen." msgid "The sticker was uploaded as static." msgstr "Der Sticker wurde als statisch hochgeladen." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "Der Sticker wurde von {user} hochgeladen." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "Das System hat {target} die Rolle {role} gegeben." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "Das System hat die Rolle {role} von {target} entfernt." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "Der Nutzername <0>{fluxerTag} ist bereits vergeben. Wenn du fortfäh msgid "The verification code is invalid or expired." msgstr "Der Bestätigungscode ist ungültig oder abgelaufen." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "Der Webhook wurde von {user} erstellt." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Diese Karte entspricht nicht deinem Abrechnungsland und kann daher nicht für diese lokalisierte Währung verwendet werden. Nutze eine lokale Karte oder kehre zu {productName} zurück und wähle eine andere Zahlungsmethode." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "Diese Kategorie enthält bereits die maximale Anzahl von {maxChannelsPerCategory} Kanälen." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Moderatoraktionen in der Community verfolgen." @@ -33953,6 +35526,11 @@ msgstr "Gruppenbesitz an {userName} übertragen?" msgid "Transfer ownership" msgstr "Eigentumsrechte übertragen" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Community-Inhaberschaft an {user} übertragen." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Streaming-Datenschutz aktivieren" msgid "Turn text smileys into emoji" msgstr "Text-Smileys in Emojis umwandeln" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Nicht jugendfreie Inhalte deaktiviert." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Slowmode deaktiviert." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "Inhaltswarnung deaktiviert." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Abgesetztes Banner deaktiviert." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Mikrofon des Mitglieds in dieser Community ausgeschaltet." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Nicht jugendfreie Inhalte aktiviert." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "Inhaltswarnung aktiviert." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Abgesetztes Banner aktiviert." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "Das Mikrofon des Mitglieds in dieser Community wieder eingeschaltet." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Das Deaktivieren von Berechtigungen kann dazu führen, dass die App nicht richtig funktioniert." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "Ukrainisch" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Aktivitätsprotokolle können nicht geladen werden" @@ -34859,6 +36482,7 @@ msgstr "Unbekanntes Ziel" msgid "unknown user" msgstr "unbekannter Nutzer" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "unbekannter Nutzer" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Nur in dieser Community verwendet." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Vermont" msgid "Version" msgstr "Version" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Sehr hoch" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Webcam" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Webhook erstellt" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhook gelöscht" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Webhook-Name" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhook aktualisiert" diff --git a/fluxer_app/src/features/i18n/locales/el/messages.po b/fluxer_app/src/features/i18n/locales/el/messages.po index 014547424..0f02eda38 100644 --- a/fluxer_app/src/features/i18n/locales/el/messages.po +++ b/fluxer_app/src/features/i18n/locales/el/messages.po @@ -56,6 +56,31 @@ msgstr "Ο/Η {a} πληκτρολογεί..." msgid "{a}, {b} and {c} are typing..." msgstr "Ο/Η {a}, ο/η {b} και ο/η {c} πληκτρολογούν..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "Ο/Η {actor} πρόσθεσε μια παράκαμψη δικαιωμάτων για τον/την {user} στο {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "Ο/Η {actor} πρόσθεσε μια παράκαμψη δικαιωμάτων για το @everyone στο {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "Ο/Η {actor} πρόσθεσε μια παράκαμψη δικαιωμάτων για τον ρόλο {role} στο {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "Ο/Η {actor} πρόσθεσε ένα αυτοκόλλητο." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "Ο/Η {actor} πρόσθεσε ένα emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "Ο/Η {actor} πρόσθεσε δικαιώματα καναλιού για τον/την {targetEntity} στο {channelNode}." @@ -64,35 +89,200 @@ msgstr "Ο/Η {actor} πρόσθεσε δικαιώματα καναλιού γ msgid "{actor} added channel permissions for {targetEntity}." msgstr "Ο/Η {actor} πρόσθεσε δικαιώματα καναλιού για τον/την {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "Ο/Η {actor} πρόσθεσε το bot {target} ως προσωρινό μέλος." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "Ο/Η {actor} πρόσθεσε το bot {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "Ο/Η {actor} πρόσθεσε το bot {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "Ο/Η {actor} πρόσθεσε το emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "Ο/Η {actor} πρόσθεσε το emoji {namedTarget}." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "Ο/Η {actor} πρόσθεσε το αυτοκόλλητο {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "Ο/Η {actor} πρόσθεσε το αυτοκόλλητο {namedTarget}." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "Ο/Η {actor} απέκλεισε τον/την {target} για {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "Ο/Η {actor} απέκλεισε τον/την {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "Ο/Η {actor} απέκλεισε τον/την {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "Ο/Η {actor} άλλαξε τον αποκλεισμό αποστολής μηνυμάτων, αντιδράσεων και συμμετοχής σε φωνητική επικοινωνία για τον/την {target}, ώστε να λήξει στις {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "Ο/Η {actor} άλλαξε το ψευδώνυμο του/της {target} από {oldNick} σε {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "Ο/Η {actor} άλλαξε τις παρακάμψεις δικαιωμάτων της κατηγορίας {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "Ο/Η {actor} άλλαξε τις παρακάμψεις δικαιωμάτων του καναλιού {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "Ο/Η {actor} άλλαξε τις παρακάμψεις δικαιωμάτων του καναλιού συνδέσμου {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "Ο/Η {actor} άλλαξε τις παρακάμψεις δικαιωμάτων του καναλιού κειμένου {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "Ο/Η {actor} άλλαξε τις παρακάμψεις δικαιωμάτων του φωνητικού καναλιού {channel}." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "Ο/Η {actor} άλλαξε το προσαρμοσμένο URL από {oldCode} σε {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "Ο/Η {actor} άλλαξε την εικόνα του προφίλ κοινότητάς του/της." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "Ο/Η {actor} άλλαξε το banner του προφίλ κοινότητάς του/της." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "Ο/Η {actor} άλλαξε το βιογραφικό του προφίλ κοινότητάς του/της σε {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "Ο/Η {actor} άλλαξε το ψευδώνυμό του/της από {oldNick} σε {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "Ο/Η {actor} δημιούργησε ένα webhook." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "Ο/Η {actor} δημιούργησε την κατηγορία {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "Ο/Η {actor} δημιούργησε το κανάλι {channel} στο {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "Ο/Η {actor} δημιούργησε το κανάλι {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "Ο/Η {actor} δημιούργησε το κανάλι {namedTarget}." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "Ο/Η {actor} δημιούργησε την πρόσκληση {code} για το {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "Ο/Η {actor} δημιούργησε την πρόσκληση {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "Ο/Η {actor} δημιούργησε την πρόσκληση {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "Ο/Η {actor} δημιούργησε το κανάλι συνδέσμου {channel} στην κατηγορία {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "Ο/Η {actor} δημιούργησε το κανάλι συνδέσμου {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "Ο/Η {actor} δημιούργησε τον ρόλο {namedTarget}." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "Ο/Η {actor} δημιούργησε τον ρόλο {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "Ο/Η {actor} δημιούργησε το κανάλι κειμένου {channel} στην κατηγορία {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "Ο/Η {actor} δημιούργησε το κανάλι κειμένου {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "Ο/Η {actor} δημιούργησε το φωνητικό κανάλι {channel} στην κατηγορία {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "Ο/Η {actor} δημιούργησε το φωνητικό κανάλι {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "Ο/Η {actor} δημιούργησε το webhook {name} στο {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "Ο/Η {actor} δημιούργησε το webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "Ο/Η {actor} δημιούργησε το webhook {namedTarget}." @@ -103,49 +293,209 @@ msgstr "Ο/Η {actor} δημιούργησε το webhook {namedTarget}." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "Ο/Η {actor} διέγραψε {0} {bulkCount, plural, one {μήνυμα} other {μηνύματα}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "Ο/Η {actor} διέγραψε {count, plural, one {# μήνυμα} other {# μηνύματα}} στο {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "Ο/Η {actor} διέγραψε {count, plural, one {# μήνυμα} other {# μηνύματα}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "Ο/Η {actor} διέγραψε ένα μήνυμα στο {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "Ο/Η {actor} διέγραψε ένα μήνυμα." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "Ο/Η {actor} διέγραψε ένα μήνυμα{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "Ο/Η {actor} διέγραψε ένα αυτοκόλλητο." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "Ο/Η {actor} διέγραψε ένα webhook." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "Ο/Η {actor} διέγραψε ένα emoji." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "Ο/Η {actor} διέγραψε πολλά μηνύματα{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "Ο/Η {actor} διέγραψε μερικά μηνύματα στο {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "Ο/Η {actor} διέγραψε μερικά μηνύματα." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "Ο/Η {actor} διέγραψε την κατηγορία {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "Ο/Η {actor} διέγραψε το κανάλι {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "Ο/Η {actor} διέγραψε το κανάλι {namedTarget}." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "Ο/Η {actor} διέγραψε το emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "Ο/Η {actor} διέγραψε το emoji {namedTarget}." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "Ο/Η {actor} διέγραψε την πρόσκληση {code} για το {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "Ο/Η {actor} διέγραψε την πρόσκληση {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "Ο/Η {actor} διέγραψε την πρόσκληση {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "Ο/Η {actor} διέγραψε το κανάλι συνδέσμου {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "Ο/Η {actor} διέγραψε τον ρόλο {namedTarget}." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "Ο/Η {actor} διέγραψε τον ρόλο {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "Ο/Η {actor} διέγραψε το αυτοκόλλητο {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "Ο/Η {actor} διέγραψε το αυτοκόλλητο {namedTarget}." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "Ο/Η {actor} διέγραψε το κανάλι κειμένου {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "Ο/Η {actor} διέγραψε το φωνητικό κανάλι {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "Ο/Η {actor} διέγραψε το webhook {name} από το {channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "Ο/Η {actor} διέγραψε το webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "Ο/Η {actor} διέγραψε το webhook {namedTarget}." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "Ο/Η {actor} αποσύνδεσε τον/την {target} από το {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "Ο/Η {actor} αποσύνδεσε τον/την {target} από τη φωνητική επικοινωνία." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "Ο/Η {actor} αποσύνδεσε τον/την {targetMember} από τη φωνητική συνομιλία." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "Ο/Η {actor} αποσυνδέθηκε από το {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "Ο/Η {actor} αποσυνδέθηκε από τη φωνητική επικοινωνία." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "Ο/Η {actor} έδωσε στον/στην {target} τον ρόλο {role}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "Ο/Η {actor} απέβαλε τον/την {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "Ο/Η {actor} απέβαλε τον/την {targetMember}." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "Ο/Η {actor} επέτρεψε στον/στην {target} να ακούει ξανά τους άλλους σε αυτήν την κοινότητα." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "Ο/Η {actor} έκανε μια αλλαγή που αυτή η έκδοση της εφαρμογής δεν μπορεί να εμφανίσει." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "Ο/Η {actor} μετακίνησε τον/την {target} από το {oldChannel} στο {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "Ο/Η {actor} μετακίνησε τον/την {target} στο {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "Ο/Η {actor} μετακίνησε τον/την {target} σε διαφορετικό φωνητικό κανάλι." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "Ο/Η {actor} μετακίνησε τον/την {targetMember} στο κανάλι {channelNode}." @@ -154,16 +504,68 @@ msgstr "Ο/Η {actor} μετακίνησε τον/την {targetMember} στο msgid "{actor} moved {targetMember} to another voice channel." msgstr "Ο/Η {actor} μετακίνησε τον/την {targetMember} σε άλλο φωνητικό κανάλι." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "Ο/Η {actor} μετακινήθηκε από το {oldChannel} στο {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "Ο/Η {actor} μετακίνησε τον ρόλο {role} πιο κάτω στη λίστα μελών." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "Ο/Η {actor} μετακίνησε τον ρόλο {role} πιο κάτω στη λίστα ρόλων." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "Ο/Η {actor} μετακίνησε τον ρόλο {role} πιο πάνω στη λίστα μελών." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "Ο/Η {actor} μετακίνησε τον ρόλο {role} πιο πάνω στη λίστα ρόλων." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "Ο/Η {actor} μετακινήθηκε στο {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "Ο/Η {actor} μετακινήθηκε σε διαφορετικό φωνητικό κανάλι." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "Ο/Η {actor} ανέστειλε τις προσκλήσεις." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "Ο/Η {actor} πραγματοποίησε μια ενέργεια ελέγχου σε {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "Ο/Η {actor} καρφίτσωσε ένα μήνυμα στο {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "Ο/Η {actor} καρφίτσωσε ένα μήνυμα." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "Ο/Η {actor} καρφίτσωσε ένα μήνυμα{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "Ο/Η {actor} αφαίρεσε ανενεργά μέλη." @@ -179,19 +581,249 @@ msgstr "Ο/Η {actor} αφαίρεσε δικαιώματα καναλιού γ msgid "{actor} removed channel permissions for {targetEntity}." msgstr "Ο/Η {actor} αφαίρεσε δικαιώματα καναλιού για τον/την {targetEntity}." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "Ο/Η {actor} αφαίρεσε το ψευδώνυμο {nick} από τον/την {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "Ο/Η {actor} αφαίρεσε την παράκαμψη δικαιωμάτων για τον/την {user} από το {channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "Ο/Η {actor} αφαίρεσε την παράκαμψη δικαιωμάτων για το @everyone από το {channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "Ο/Η {actor} αφαίρεσε την παράκαμψη δικαιωμάτων για τον ρόλο {role} από το {channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "Ο/Η {actor} αφαίρεσε τον ρόλο {role} από τον/την {target}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "Ο/Η {actor} αφαίρεσε τον προσωρινό περιορισμό από τον/την {target}." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "Ο/Η {actor} αφαίρεσε το προσαρμοσμένο URL {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "Ο/Η {actor} αφαίρεσε το χρώμα έμφασης του προφίλ κοινότητάς του/της." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "Ο/Η {actor} αφαίρεσε την εικόνα του προφίλ κοινότητάς του/της." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "Ο/Η {actor} αφαίρεσε το banner του προφίλ κοινότητάς του/της." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "Ο/Η {actor} αφαίρεσε το βιογραφικό του προφίλ κοινότητάς του/της." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "Ο/Η {actor} αφαίρεσε τις αντωνυμίες του προφίλ κοινότητάς του/της." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "Ο/Η {actor} αφαίρεσε το ψευδώνυμό του/της {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "Ο/Η {actor} μετονόμασε την κατηγορία {oldName} σε {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "Ο/Η {actor} μετονόμασε το κανάλι {oldName} σε {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "Ο/Η {actor} μετονόμασε την κοινότητα από {oldName} σε {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "Ο/Η {actor} μετονόμασε το emoji {oldEmoji} σε {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "Ο/Η {actor} μετονόμασε το κανάλι συνδέσμου {oldName} σε {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "Ο/Η {actor} μετονόμασε τον ρόλο {oldName} σε {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "Ο/Η {actor} μετονόμασε το αυτοκόλλητο {oldName} σε {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "Ο/Η {actor} μετονόμασε το κανάλι κειμένου {oldName} σε {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "Ο/Η {actor} μετονόμασε το φωνητικό κανάλι {oldName} σε {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "Ο/Η {actor} μετονόμασε το webhook {oldName} σε {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "Ο/Η {actor} επανέφερε τη θέση στη λίστα μελών για τον ρόλο {role}." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "Ο/Η {actor} επανενεργοποίησε τις προσκλήσεις." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "Ο/Η {actor} όρισε μια θέση στη λίστα μελών για τον ρόλο {role}." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "Ο/Η {actor} έθεσε το ψευδώνυμο του/της {target} σε {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "Ο/Η {actor} όρισε το προσαρμοσμένο URL σε {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "Ο/Η {actor} όρισε το χρώμα έμφασης του προφίλ κοινότητάς του/της σε {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "Ο/Η {actor} όρισε την εικόνα του προφίλ κοινότητάς του/της." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "Ο/Η {actor} όρισε το banner του προφίλ κοινότητάς του/της." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "Ο/Η {actor} όρισε το βιογραφικό του προφίλ κοινότητάς του/της σε {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "Ο/Η {actor} όρισε τις αντωνυμίες του προφίλ κοινότητάς του/της σε {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "Ο/Η {actor} όρισε το ψευδώνυμό του/της σε {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "Ο/Η {actor} αφαίρεσε από τον/την {target} τη δυνατότητα να ακούει τους άλλους σε αυτήν την κοινότητα." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "Ο/Η {actor} έθεσε τον/την {target} σε προσωρινό περιορισμό μέχρι τις {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "Ο/Η {actor} μεταβίβασε την ιδιοκτησία της κοινότητας στον/στην {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "Ο/Η {actor} ενεργοποίησε ξανά το μικρόφωνο του/της {target} σε αυτήν την κοινότητα." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "Ο/Η {actor} απενεργοποίησε το μικρόφωνο του/της {target} σε αυτήν την κοινότητα." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "Ο/Η {actor} ανακάλεσε τον αποκλεισμό του/της {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "Ο/Η {actor} κατάργησε τον αποκλεισμό του/της {targetMember}." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "Ο/Η {actor} αφαίρεσε την καρφίτσα από ένα μήνυμα στο {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "Ο/Η {actor} αφαίρεσε την καρφίτσα από ένα μήνυμα." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "Ο/Η {actor} κατάργησε το καρφίτσωμα ενός μηνύματος{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "Ο/Η {actor} ενημέρωσε τον/την {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "Ο/Η {actor} ενημέρωσε τον/την {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "Ο/Η {actor} ενημέρωσε ένα αυτοκόλλητο." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "Ο/Η {actor} ενημέρωσε ένα webhook." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "Ο/Η {actor} ενημέρωσε ένα emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "Ο/Η {actor} ενημέρωσε τα δικαιώματα καναλιού για τον/την {targetEntity} στο {channelNode}." @@ -204,35 +836,112 @@ msgstr "Ο/Η {actor} ενημέρωσε τα δικαιώματα καναλι msgid "{actor} updated roles for {targetMember}." msgstr "Ο/Η {actor} ενημέρωσε τους ρόλους για τον/την {targetMember}." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "Ο/Η {actor} ενημέρωσε την κατηγορία {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "Ο/Η {actor} ενημέρωσε το κανάλι {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "Ο/Η {actor} ενημέρωσε το κανάλι {namedTarget}." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "Ο/Η {actor} ενημέρωσε τις ρυθμίσεις της κοινότητας." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "Ο/Η {actor} ενημέρωσε το emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "Ο/Η {actor} ενημέρωσε το emoji {namedTarget}." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "Ο/Η {actor} ενημέρωσε την πρόσκληση {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "Ο/Η {actor} ενημέρωσε την πρόσκληση {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "Ο/Η {actor} ενημέρωσε το κανάλι συνδέσμου {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "Ο/Η {actor} ενημέρωσε την παράκαμψη δικαιωμάτων για τον/την {user} στο {channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "Ο/Η {actor} ενημέρωσε την παράκαμψη δικαιωμάτων για το @everyone στο {channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "Ο/Η {actor} ενημέρωσε την παράκαμψη δικαιωμάτων για τον ρόλο {role} στο {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "Ο/Η {actor} ενημέρωσε τον ρόλο {namedTarget}." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "Ο/Η {actor} ενημέρωσε τον ρόλο {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "Ο/Η {actor} ενημέρωσε τους ρόλους του/της {target}." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "Ο/Η {actor} ενημέρωσε το αυτοκόλλητο {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "Ο/Η {actor} ενημέρωσε το αυτοκόλλητο {namedTarget}." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "Ο/Η {actor} ενημέρωσε το κανάλι κειμένου {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "Ο/Η {actor} ενημέρωσε το φωνητικό κανάλι {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "Ο/Η {actor} ενημέρωσε το webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "Ο/Η {actor} ενημέρωσε το webhook {namedTarget}." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "Ο/Η {actor} ενημέρωσε το προφίλ του/της για αυτήν την κοινότητα." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# αντικείμενο} other {# αντικείμ msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# μέλος} other {# μέλη}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# ακόμη δικαίωμα} other {# ακόμη δικαιώματα}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# κοινή κοινότητα} other {# κοινές κοινότητες}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {Εμφάνιση # συσκευής} other {Εμφ msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Αποσύνδεση # συσκευής} other {Αποσύνδεση # συσκευών}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {Ο σύνδεσμος πρόσκλησης περιορίστηκε σε # χρήση.} other {Ο σύνδεσμος πρόσκλησης περιορίστηκε σε # χρήσεις.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {Ο σύνδεσμος πρόσκλησης χρησιμοποιήθηκε # φορά.} other {Ο σύνδεσμος πρόσκλησης χρησιμοποιήθηκε # φορές.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "Κανάλια του {guildName}" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Δραστηριότητα" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Αρχείο δραστηριοτήτων" @@ -2713,10 +3437,60 @@ msgstr "Προστέθηκε {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "{length, plural, one {Προστέθηκε # αναφορά τοπικού αρχείου} other {Προστέθηκαν # αναφορές τοπικών αρχείων}}." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "Προστέθηκε φόντο ενσωμάτωσης συνομιλίας." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Προστέθηκε banner κοινότητας." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Προστέθηκε εικονίδιο κοινότητας." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "Προστέθηκε προειδοποίηση περιεχομένου με κείμενο {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Προστέθηκε προειδοποίηση περιεχομένου." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "Προστέθηκε εικόνα προφίλ." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Προστέθηκε φόντο πρόσκλησης." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Προστέθηκαν ρόλοι." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Προστέθηκε η εικόνα προφίλ κοινότητας του μέλους." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Προστέθηκε το banner του προφίλ κοινότητας του μέλους." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "Προστέθηκε ο ρόλος {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Οι ρυθμίσεις στοίχισης είναι διαθέσιμε #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Όλα τα <0/>, για πάντα. Χωρίς χρέωση, χωρίς ανανεώσεις." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Όλες οι ενέργειες" @@ -3001,10 +3775,12 @@ msgstr "Όλες οι γλώσσες" msgid "All members" msgstr "Όλα τα μέλη" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "Όλο το διάστημα" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Όλοι οι χρήστες" @@ -3197,6 +3973,16 @@ msgstr "Επιτράπηκε το {0} και καταργήθηκε η άδει msgid "Allowed {0}." msgstr "Επιτράπηκε {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "Επιτράπηκαν {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Επιτράπηκε σε όλα τα μέλη να κάνουν αναφορά σε αυτόν τον ρόλο." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Επιτρεπόμενοι καλούντες" @@ -3205,15 +3991,35 @@ msgstr "Επιτρεπόμενοι καλούντες" msgid "Allowed everyone to mention this role." msgstr "Επιτράπηκε σε όλους να αναφέρουν αυτόν τον ρόλο." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Επιτρέπονται ευέλικτα ονόματα καναλιών κειμένου." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Επιτρεπόμενες προσκλήσεις" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Επιτράπηκε σε άλλους να κλωνοποιήσουν τα emoji αυτής της κοινότητας." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Επιτράπηκε σε άλλους να κλωνοποιήσουν τα αυτοκόλλητα αυτής της κοινότητας." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Επιτρεπόμενες ανακατευθύνσεις" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Επιτρέπονται έως {count, plural, one {# σύνδεση} other {# συνδέσεις}} ανά μέλος." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Αποκλεισμός μελών" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Αποκλεισμός μελών από την κοινότητα, με την επιλογή διαγραφής των πρόσφατων μηνυμάτων τους." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Λόγος αποκλεισμού" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Μπλοκάρισμα χρήστη" msgid "Blocked" msgstr "Μπλοκαρισμένοι" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Αποκλείστηκε η δυνατότητα του μέλους να στέλνει μηνύματα, να αντιδρά και να συμμετέχει σε φωνητική επικοινωνία έως τις {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Bot" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Προστέθηκε bot" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Η κατηγορία διαγράφηκε" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Η κατηγορία είναι πλήρης" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Κέντρο" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Στο κέντρο" @@ -6298,11 +7116,183 @@ msgstr "Αλλαγή ονόματος χρήστη" msgid "Changed nickname from {0} to {1}." msgstr "Άλλαξε το ψευδώνυμο από {0} σε {1}." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Άλλαξε η αργή λειτουργία από {oldDuration} σε {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "Άλλαξε το κανάλι AFK από {oldChannel} σε {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "Άλλαξε ο χρόνος αναμονής για το κανάλι AFK από {oldDuration} σε {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "Άλλαξε η ποιότητα ήχου από {oldKbps} kbps σε {newKbps} kbps." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Άλλαξε την εικόνα προφίλ." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Άλλαξε το bitrate σε {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Άλλαξε ο αποκλεισμός αποστολής μηνυμάτων, αντιδράσεων και συμμετοχής σε φωνητική επικοινωνία ώστε να λήξει στις {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Άλλαξε το φόντο ενσωμάτωσης συνομιλίας." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Άλλαξε το banner του προφίλ για αυτήν την κοινότητα." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Άλλαξε το εικονίδιο της κοινότητας." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "Άλλαξαν οι συνδέσεις ανά μέλος από {oldCount} σε {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "Άλλαξε το κείμενο προειδοποίησης περιεχομένου από {oldText} σε {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Άλλαξε το προσαρμοσμένο εικονίδιο του ρόλου." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Άλλαξε το προσαρμοσμένο κείμενο προειδοποίησης από {oldText} σε {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "Άλλαξε η προεπιλεγμένη ρύθμιση ειδοποιήσεων από {oldSetting} σε {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Άλλαξε η περιγραφή από {oldText} σε {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Άλλαξε το φίλτρο ακατάλληλου περιεχομένου από {oldFilter} σε {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Άλλαξε η στοίχιση της εικόνας φόντου της πρόσκλησης από {oldAlignment} σε {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Άλλαξε το φόντο της πρόσκλησης." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "Άλλαξε ο σύνδεσμος από {oldUrl} σε {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Άλλαξε την εικόνα προφίλ κοινότητας του μέλους." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Άλλαξε το banner του προφίλ κοινότητας του μέλους." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "Άλλαξε το βιογραφικό του προφίλ κοινότητας του μέλους σε {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "Άλλαξε το όριο ιστορικού μηνυμάτων από {oldDate} σε {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "Άλλαξε το όνομα από {oldName} σε {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "Άλλαξε το ψευδώνυμο από {oldNick} σε {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Άλλαξε το χρώμα του ρόλου από {oldColor} σε {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Άλλαξε το εικονίδιο του ρόλου από {oldEmoji} σε {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "Άλλαξε το κανάλι συστήματος από {oldChannel} σε {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Άλλαξε το θέμα από {oldText} σε {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "Άλλαξε το όριο χρηστών από {oldCount} σε {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "Άλλαξε το προσαρμοσμένο URL από {oldCode} σε {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Άλλαξε το επίπεδο επαλήθευσης από {oldLevel} σε {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "Άλλαξε η περιοχή φωνής από {oldRegion} σε {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "κανάλι" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Κανάλι ή κατηγορία" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Η παράκαμψη καναλιού προστέθηκε" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Η παράκαμψη καναλιού καταργήθηκε" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Η παράκαμψη καναλιού ενημερώθηκε" @@ -7815,7 +8805,7 @@ msgstr "Οι κοινότητες με πάνω από 250 άτομα αναγκ #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Να διαγραφούν τα μηνύματά σας σε αυτήν msgid "Deleted" msgstr "Διαγράφηκε" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "Διαγράφηκε το πρόσφατο ιστορικό μηνυμάτων του μέλους για {duration}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Διαγραμμένο κείμενο" msgid "Deleted your messages." msgstr "Τα μηνύματά σας διαγράφηκαν." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "διαγραμμένη-κατηγορία" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "διαγραμμένο-κανάλι" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "διαγραμμένος-ρόλος" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "Απαγορεύτηκε το {0} και καταργήθηκε η άρ msgid "Denied {0}." msgstr "Απαγορεύτηκε {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "Απαγορεύτηκαν {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Οι ενσωματώσεις εμφανίστηκαν ξανά" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Η κλωνοποίηση emoji ενεργοποιήθηκε" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Δημιουργήθηκε emoji" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Το emoji διαγράφηκε" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Οι θέσεις emoji είναι πλήρεις" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Το emoji ενημερώθηκε" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Φιλτράρισμα κατά ημερομηνία δημιουργίας λογαριασμού" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Φιλτράρισμα κατά ενέργεια" @@ -14572,18 +15587,22 @@ msgstr "Φιλτράρισμα κατά ρόλους" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Φιλτράρισμα κατά χρήστη" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Φιλτράρισμα όλων" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Φιλτράρισμα μελών χωρίς ρόλους" @@ -15890,6 +16909,11 @@ msgstr "Παραχωρήθηκαν {0} και ανακλήθηκαν {1}." msgid "Granted {0}." msgstr "Παραχωρήθηκε {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "Χορηγήθηκαν {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Γεια σου, {username}! Ελπίζουμε να περάσεις ό msgid "Hey, {username}, welcome aboard!" msgstr "Γεια σου, {username}, καλώς ήρθες!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Απόκρυψη μηνυμάτων εισόδου στο κανάλι συστήματος." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Απόκρυψη στέμματος ιδιοκτήτη κοινότητας." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Να αποκρύψετε τη δική σας κάμερα;" msgid "Hide your own screen share?" msgstr "Να αποκρύψετε τη δική σας κοινή χρήση οθόνης;" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Υψηλό" @@ -17688,7 +18724,7 @@ msgstr "Πρόσκληση" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "Ο κωδικός πρόσκλησης είναι {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Η πρόσκληση δημιουργήθηκε" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Η πρόσκληση διαγράφηκε" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Η πρόσκληση δεν είναι διαθέσιμη" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Η πρόσκληση ενημερώθηκε" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (αριστερά)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Αριστερή στοίχιση" @@ -18745,6 +19783,11 @@ msgstr "Τα προγράμματα ανάγνωσης οθόνης ανακοι msgid "Let the community self-moderate" msgstr "Άσε την κοινότητα να συντονίζεται μόνη της" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Επέτρεψε στο μέλος να ακούει ξανά τους άλλους σε αυτήν την κοινότητα." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Επιτρέπει στο προσαρμοσμένο CSS να αποκαλύπτει διαφανείς περιοχές παραθύρων μετά την επανεκκίνηση της εφαρμογής υπολογιστή." @@ -18815,6 +19858,16 @@ msgstr "Δηλώθηκε ως αγαπημένο." msgid "Likes: <0>{countLabel}" msgstr "Μου αρέσει: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "Περιορίστηκαν οι αναφορές αυτού του ρόλου σε μέλη με δικαίωμα αναφοράς οποιουδήποτε ρόλου." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Περιορίστηκε το κανάλι σε {count, plural, one {# χρήστη} other {# χρήστες}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Λουιζιάνα" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Χαμηλό" @@ -19204,6 +20259,11 @@ msgstr "Προεπιλεγμένη συσκευή macOS" msgid "macOS permissions" msgstr "Δικαιώματα macOS" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Το κανάλι ορίστηκε να κληρονομεί τη ρύθμιση περιεχομένου για ενήλικες." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Το emoji επισημάνθηκε ως κινούμενο." msgid "Marked emoji as static." msgstr "Το emoji επισημάνθηκε ως στατικό." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Το κανάλι επισημάνθηκε ότι περιέχει περιεχόμενο για ενήλικες." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Το κανάλι επισημάνθηκε ότι δεν περιέχει περιεχόμενο για ενήλικες." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "Το μέλος επισημάνθηκε ως μόνιμο." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Διακοπή αναπαραγωγής" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Μέτριο" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Μεσαίο μέγεθος (προεπιλογή)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Μέλος" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Ενέργειες για το μέλος {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Το μέλος αποκλείστηκε" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Το μέλος αποσυνδέθηκε" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Το μέλος αποβλήθηκε" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Οι λίστες μελών είναι προσωρινά μη διαθέσιμες σε αυτήν την κοινότητα" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Το μέλος μετακινήθηκε" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Το μέλος δεν βρέθηκε" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Οι ρόλοι του μέλους ενημερώθηκαν" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Μέλος από" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Ο αποκλεισμός του μέλους καταργήθηκε" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Το μέλος ενημερώθηκε" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Τα μέλη αφαιρούνται όταν είναι εκτός σύνδεσης, εκτός αν τους έχει δοθεί κάποιος ρόλος." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Τα μέλη αφαιρέθηκαν" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "Τα μέλη χωρίς το δικαίωμα {readMessageHistoryPermissionLabel} μπορούν να δουν μηνύματα που στάλθηκαν μετά από αυτήν την ημερομηνία." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Μέλη, επιλεγμένα" @@ -20077,8 +21149,10 @@ msgstr "Οι αναφορές σε εσάς εμφανίζονται εδώ γι msgid "Mentions of you show up here for {retentionDays} days." msgstr "Οι αναφορές σε εσάς εμφανίζονται εδώ για {retentionDays} ημέρες." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Μόνο αναφορές" @@ -20104,7 +21178,7 @@ msgstr "μήνυμα" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Μήνυμα" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Εντοπισμός σφαλμάτων μηνύματος" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Το μήνυμα διαγράφηκε" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Λίστα μηνυμάτων για το {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Το μήνυμα καρφιτσώθηκε" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Ώρα μηνύματος" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Το μήνυμα αποκαρφιτσώθηκε" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Μηνύματα και πολυμέσα" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Τα μηνύματα διαγράφηκαν" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Συντονισμός" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Εδώ θα εμφανίζονται οι ενέργειες συντονισμού και οι αλλαγές στην κοινότητα." @@ -20915,16 +21989,51 @@ msgstr "Μετακίνηση σε" msgid "Move to…" msgstr "Μετακίνηση σε…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Μεταφέρθηκε από το {oldChannel} στο {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Μεταφέρθηκε το κανάλι από την κατηγορία {oldCategory} στην κατηγορία {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Μεταφέρθηκε το κανάλι στην κατηγορία {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Μετακινήθηκε το κανάλι στην κατηγορία {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "Μετακινήθηκε ο ρόλος χαμηλότερα στη λίστα μελών." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "Μετακινήθηκε ο ρόλος χαμηλότερα στη λίστα ρόλων." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Μετακινήθηκε ο ρόλος στη θέση {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "Μετακινήθηκε ο ρόλος υψηλότερα στη λίστα μελών." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "Μετακινήθηκε ο ρόλος υψηλότερα στη λίστα ρόλων." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Νέο μήνυμα" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Νέα μηνύματα" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "Δεν υπάρχουν αναφορές σε τοπικά αρχεία" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Δεν υπάρχουν ακόμα αρχεία καταγραφής" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "Δεν δόθηκε λόγος" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "Δεν δόθηκε λόγος." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Χωρίς μετατροπή" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Χωρίς μετατροπή" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "Δημιουργία URL OAuth2" msgid "Objects" msgstr "Αντικείμενα" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Αντικείμενα" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Ανενεργό" @@ -23523,6 +24636,21 @@ msgstr "Το αρχικό μήνυμα δεν φορτώθηκε" msgid "Original message was deleted" msgstr "Το αρχικό μήνυμα διαγράφηκε" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Αρχικά έγινε ο αποκλεισμός από τον/την {user} στις {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Αρχικά έγινε ο αποκλεισμός από τον/την {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Αρχικά έγινε ο αποκλεισμός στις {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Σε παύση λόγω μειωμένης κίνησης. Ενεργο msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "Σε παύση λόγω μειωμένης κίνησης. Ενεργοποιήστε το για να συνεχίσουν να παίζουν τα GIF." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Αναστάλθηκαν οι προσκλήσεις." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Διαγράψτε οριστικά τον λογαριασμό σας msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Οριστική διαγραφή των μηνυμάτων που έχετε στείλει σε DM, ομαδικές συνομιλίες και κοινότητες. Η διαδικασία εκτελείται στο παρασκήνιο και θα λάβετε ένα DM όταν ολοκληρωθεί." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Προστέθηκε παράκαμψη δικαιώματος" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Καταργήθηκε η παράκαμψη δικαιώματος" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Άλλαξε η παράκαμψη δικαιώματος" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Έτοιμοι για αναβάθμιση;" msgid "Real-time" msgstr "Πραγματικός χρόνος" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Λόγος" @@ -26291,26 +27440,166 @@ msgstr "Ο ρόλος {oldLabel} καταργήθηκε." msgid "Removed roles." msgstr "Καταργήθηκαν ρόλοι." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "Καταργήθηκε το κανάλι AFK." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Αφαιρέθηκε η εικόνα προφίλ." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Το κανάλι καταργήθηκε από την κατηγορία του." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Αφαιρέθηκε το κανάλι από την κατηγορία {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Αφαιρέθηκε το φόντο ενσωμάτωσης συνομιλίας." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "Αφαιρέθηκε το banner της κοινότητας." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Αφαιρέθηκε το εικονίδιο της κοινότητας." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "Αφαιρέθηκε το κείμενο προειδοποίησης περιεχομένου." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Αφαιρέθηκε η προειδοποίηση περιεχομένου." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Αφαιρέθηκε το προσαρμοσμένο εικονίδιο του ρόλου." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Αφαιρέθηκε το προσαρμοσμένο κείμενο προειδοποίησης." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Αφαιρέθηκε η περιγραφή {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Αφαιρέθηκε η εικόνα φόντου πρόσκλησης." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Αφαιρέθηκε ο σύνδεσμος." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Αφαιρέθηκε το χρώμα έμφασης του προφίλ κοινότητας του μέλους." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Αφαιρέθηκε η εικόνα προφίλ κοινότητας του μέλους." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Αφαιρέθηκε το banner του προφίλ κοινότητας του μέλους." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Αφαιρέθηκε το βιογραφικό του προφίλ κοινότητας του μέλους." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "Αφαιρέθηκαν οι αντωνυμίες του προφίλ κοινότητας του μέλους." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Καταργήθηκε το όριο ιστορικού μηνυμάτων." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "Αφαιρέθηκε το ψευδώνυμο {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "Αφαιρέθηκε η παράκαμψη για {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "Αφαιρέθηκε ο ρόλος {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Αφαιρέθηκε το χρώμα του ρόλου." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Αφαιρέθηκε το εικονίδιο του ρόλου." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Καταργήθηκε το κανάλι κανόνων." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "Καταργήθηκε το κανάλι συστήματος." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "Αφαιρέθηκε ο προσωρινός περιορισμός." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "Αφαιρέθηκε το θέμα {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Καταργήθηκε το emoji Unicode." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Καταργήθηκε το όριο χρηστών." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "Αφαιρέθηκε το προσαρμοσμένο URL {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Καταργήθηκε ο προσωρινός περιορισμός από τον/την {targetUserTag}" @@ -26381,6 +27670,11 @@ msgstr "Μετονομάστηκε το αυτοκόλλητο σε {0}." msgid "Renamed the channel to {0}." msgstr "Μετονομάστηκε το κανάλι σε {0}." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Μετονομάστηκε η κοινότητα από {oldName} σε {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Να απαιτείται έλεγχος ταυτότητας δύο π msgid "Required" msgstr "Απαιτείται" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "Ενεργοποιήθηκε η απαίτηση για έλεγχο ταυτότητας δύο παραγόντων (2FA) για ενέργειες συντονισμού." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Επαναφορά διαστήματος" msgid "Reset the connection limit." msgstr "Έγινε επαναφορά του ορίου συνδέσεων." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "Επαναφέρθηκε η θέση στη λίστα μελών για τον ρόλο." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Οι αναφορές σε αυτόν τον ρόλο περιορίστ msgid "Resubscribe" msgstr "Επανεγγραφή" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Επανενεργοποιήθηκαν οι προσκλήσεις." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Επιστροφή στην είσοδο" @@ -27330,6 +28639,11 @@ msgstr "Να ανακαλέσετε αυτήν την πρόσκληση; Δεν msgid "Revoked {0}." msgstr "Ανακλήθηκε {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "Αφαιρέθηκαν οι {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (δεξιά)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Στοίχιση δεξιά" @@ -27408,7 +28724,7 @@ msgstr "Ήχος κλήσης" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Ρόλος" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Χρώμα ρόλου" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Ο ρόλος δημιουργήθηκε" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Ο ρόλος δημιουργήθηκε με επιτυχία" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Ο ρόλος διαγράφηκε" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "Απαιτείται όνομα ρόλου" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Ο ρόλος ενημερώθηκε" @@ -28930,11 +30246,21 @@ msgstr "Συνεδρίες" msgid "Set {fieldNode} to {0}." msgstr "Ορίστηκε το {fieldNode} σε {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Ορίστηκε προσαρμοσμένο εικονίδιο για τον ρόλο." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Ορισμός προσαρμοσμένης κατάστασης" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Ορίστηκε θέση στη λίστα μελών για τον ρόλο." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "Ορίστηκε το χρώμα του ρόλου σε <0>{hex} <1/ msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "Ορίστηκε η αργή λειτουργία σε {0} {seconds, plural, one {δευτερόλεπτο} other {δευτερόλεπτα}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Ορίστηκε η αργή λειτουργία σε {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Ορισμός κατάστασης" msgid "Set the AFK channel to {0}." msgstr "Ορίστηκε το κανάλι AFK σε {0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "Ορίστηκε το κανάλι AFK σε {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "Το χρονικό όριο αδράνειας ορίστηκε σε {0} δευτερόλεπτα." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "Ορίστηκε η ποιότητα ήχου σε {kbps} kbps." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "Ορίστηκε ο τύπος του καναλιού σε {0}." msgid "Set the connection limit to {0}." msgstr "Ορίστηκε το όριο συνδέσεων σε {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "Ορίστηκε το κείμενο προειδοποίησης περιεχομένου σε {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "Ορίστηκε το προσαρμοσμένο κείμενο προειδοποίησης σε {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "Ορίστηκε η περιγραφή σε {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "Ορίστηκε η ευθυγράμμιση της εικόνας πρόσκλησης σε {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "Ορίστηκε ο σύνδεσμος σε {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "Ορίστηκε το χρώμα έμφασης του προφίλ κοινότητας του μέλους σε {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "Ορίστηκε το βιογραφικό του προφίλ κοινότητας του μέλους σε {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "Ορίστηκαν οι αντωνυμίες του προφίλ κοινότητας του μέλους σε {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "Ορίστηκε το όριο ιστορικού μηνυμάτων στο {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "Ορίστηκε το ψευδώνυμο σε {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Ορίστε το δημόσιο όνομα προϊόντος, το χρώμα θέματος και τα στοιχεία εικόνας που εμφανίζονται στους πελάτες." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "Ορίστηκε το χρώμα του ρόλου σε {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "Ορίστηκε το εικονίδιο του ρόλου σε {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "Ορίστηκε το κανάλι κανόνων σε {0}." msgid "Set the system channel to {0}." msgstr "Ορίστηκε το κανάλι συστήματος σε {0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "Ορίστηκε το κανάλι συστήματος σε {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "Ορίστηκε το θέμα σε {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "Ορίστηκε το όριο χρηστών σε {0}." msgid "Set the vanity URL to {0}." msgstr "Ορίστηκε η προσαρμοσμένη διεύθυνση URL σε {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "Ορίστηκε το προσαρμοσμένο URL σε {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "Ορίστηκε η περιοχή φωνής σε {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "Ορίστηκε η περιοχή φωνής σε αυτόματη." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Εμφάνιση του banner του καθολικού προφίλ σ msgid "Show your Visionary as a regular subscription instead" msgstr "Εμφάνιση του Visionary ως κανονική συνδρομή" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Εμφανίστηκαν τα μέλη με αυτόν τον ρόλο σε δική τους ενότητα στη λίστα μελών." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Κάτι πήγε στραβά κατά την έκδοση της επιστροφής χρημάτων σας. Επικοινωνήστε με την υποστήριξη αν αυτό συνεχιστεί." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Κάτι πήγε στραβά κατά τη φόρτωση του αρχείου καταγραφής δραστηριοτήτων." @@ -31105,6 +32531,11 @@ msgstr "Έναρξη φωνητικής κλήσης" msgid "Start with computer" msgstr "Εκκίνηση με τον υπολογιστή" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "Άρχισε η ξεχωριστή εμφάνιση των μελών με αυτόν τον ρόλο." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "αυτοκόλλητο" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "Δεν ήταν δυνατή η επαρκής συμπίεση του αυτοκόλλητου" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Το αυτοκόλλητο δημιουργήθηκε" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Το αυτοκόλλητο διαγράφηκε" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Οι θέσεις αυτοκόλλητων είναι πλήρεις" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Το αυτοκόλλητο ενημερώθηκε" @@ -31412,6 +32843,46 @@ msgstr "Διακοπή παρακολούθησης ροής" msgid "Stop." msgstr "Σταματήστε." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Δεν επιτρέπονται πλέον τα ευέλικτα ονόματα καναλιών κειμένου." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Δεν επιτρέπεται πλέον η κλωνοποίηση των emoji αυτής της κοινότητας από άλλους." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Δεν επιτρέπεται πλέον η κλωνοποίηση των αυτοκόλλητων αυτής της κοινότητας από άλλους." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Έγινε παύση της ξεχωριστής εμφάνισης των μελών με αυτόν τον ρόλο." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Σταμάτησε η απόκρυψη μηνυμάτων εισόδου στο κανάλι συστήματος." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Σταμάτησε η απόκρυψη του στέμματος του ιδιοκτήτη της κοινότητας." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Απενεργοποιήθηκε η απαίτηση για έλεγχο ταυτότητας δύο παραγόντων (2FA) για ενέργειες συντονισμού." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Αφαιρέθηκε από το μέλος η δυνατότητα να ακούει τους άλλους σε αυτήν την κοινότητα." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Συγχρονισμός με την κατηγορία" msgid "Syntax highlighting" msgstr "Επισήμανση σύνταξης" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "Σύστημα" @@ -32449,6 +33922,16 @@ msgstr "Η εφαρμογή έκλεισε απροσδόκητα. Αναζητ msgid "The app should now be signed in to your account." msgstr "Η εφαρμογή θα πρέπει τώρα να έχει συνδεθεί στον λογαριασμό σας." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "Ο αποκλεισμός είχε ήδη λήξει στις {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "Ο αποκλεισμός επρόκειτο να λήξει στις {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "Το bot προστέθηκε στο <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "Η ενημέρωση για υπολογιστές έχει ληφθε msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "Το αρχείο που κατεβάσατε έχει αποθηκευτεί στον υπολογιστή σας. Εγκαταστήστε το με τον συνηθισμένο διαχειριστή πακέτων σας." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "Το emoji ανέβηκε από τον/την {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "Το αρχείο περιέχει το token επαλήθευσης που θα ανακτήσουμε από το <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "Το αρχείο που προσπαθείτε να ανεβάσετε msgid "The following people can't be added to this group DM:" msgstr "Τα παρακάτω άτομα δεν μπορούν να προστεθούν σε αυτήν την ομαδική συνομιλία:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "Η πρόσκληση δημιουργήθηκε από τον/την {user} στις {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "Η πρόσκληση δημιουργήθηκε από τον/την {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "Η πρόσκληση δημιουργήθηκε στις {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "Η πρόσκληση δεν χρησιμοποιήθηκε ποτέ." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "Η πρόσκληση είχε προγραμματιστεί να λήξει στις {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "Ο σύνδεσμος πρόσκλησης ορίστηκε ώστε να επιτρέπει απεριόριστες χρήσεις." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "Ο σύνδεσμος πρόσκλησης ορίστηκε να λήξει μετά από {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "Ο σύνδεσμος πρόσκλησης ορίστηκε για να χορηγεί προσωρινή ιδιότητα μέλους." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "Ο σύνδεσμος ορίστηκε να μην λήγει ποτέ." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "Η γλώσσα που μιλάει η κοινότητά σας. Χρησιμοποιείται για το φιλτράρισμα των αποτελεσμάτων στην Ανακάλυψη." @@ -32518,6 +34051,11 @@ msgstr "Ο σύνδεσμος ενδέχεται να εξακολουθεί ν msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "Η επαλήθευση περιεχομένου ενηλίκων ακυρώθηκε. Μπορείτε να κλείσετε αυτήν την καρτέλα και να δοκιμάσετε ξανά από την εφαρμογή." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "Το μέλος δεν είναι πλέον προσωρινό." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "Η νέα τιμή έχει ήδη προγραμματιστεί για msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "Το νέο φωνητικό κανάλι θα επαναχρησιμοποιήσει τα δικαιώματα, το όριο χρηστών και το bitrate από το <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "Η παράκαμψη επέτρεπε {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "Η παράκαμψη απαγόρευε {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "Η σελίδα που ψάχνετε δεν υπάρχει ή έχει μετακινηθεί." @@ -32565,6 +34113,11 @@ msgstr "Το redirect_uri που δόθηκε δεν είναι καταχωρι msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "Το redirect_uri που δόθηκε πρέπει να χρησιμοποιεί HTTP ή HTTPS." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "Ο ρόλος παραχώρησε {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "Το αυτοκόλλητο ανέβηκε ως κινούμενο." msgid "The sticker was uploaded as static." msgstr "Το αυτοκόλλητο ανέβηκε ως στατικό." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "Το αυτοκόλλητο ανέβηκε από τον/την {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "Το σύστημα έδωσε στον/στην {target} τον ρόλο {role}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "Το σύστημα αφαίρεσε τον ρόλο {role} από τον/την {target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "Το όνομα χρήστη <0>{fluxerTag} χρησιμοποιεί msgid "The verification code is invalid or expired." msgstr "Ο κωδικός επαλήθευσης δεν είναι έγκυρος ή έχει λήξει." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "Το webhook δημιουργήθηκε από τον/την {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Αυτή η κάρτα δεν αντιστοιχεί στη χώρα χρέωσής σας, επομένως δεν μπορεί να χρησιμοποιηθεί για αυτό το τοπικό νόμισμα. Χρησιμοποιήστε μια τοπική κάρτα ή επιστρέψτε στο {productName} και επιλέξτε άλλη μέθοδο πληρωμής." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "Αυτή η κατηγορία περιέχει ήδη τον μέγιστο αριθμό των {maxChannelsPerCategory} καναλιών." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Παρακολούθηση των ενεργειών των συντονιστών σε όλη την κοινότητα." @@ -33953,6 +35526,11 @@ msgstr "Μεταβίβαση ιδιοκτησίας της ομάδας στον msgid "Transfer ownership" msgstr "Μεταβίβαση ιδιοκτησίας" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Μεταβιβάστηκε η ιδιοκτησία της κοινότητας στον/στην {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Ενεργοποίηση απορρήτου ροής" msgid "Turn text smileys into emoji" msgstr "Μετατροπή φατσούλων κειμένου σε emoji" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Απενεργοποιήθηκε το περιεχόμενο ενηλίκων." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Απενεργοποιήθηκε η αργή λειτουργία." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "Απενεργοποιήθηκε η προειδοποίηση περιεχομένου." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Απενεργοποιήθηκε το ξεχωριστό banner." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Έγινε απενεργοποίηση του μικροφώνου του μέλους σε αυτήν την κοινότητα." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Ενεργοποιήθηκε το περιεχόμενο ενηλίκων." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "Ενεργοποιήθηκε η προειδοποίηση περιεχομένου." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Ενεργοποιήθηκε το ξεχωριστό banner." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "Ενεργοποιήθηκε ξανά το μικρόφωνο του μέλους σε αυτήν την κοινότητα." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Αν απενεργοποιήσετε πεδία εφαρμογής, η εφαρμογή ενδέχεται να μη λειτουργεί σωστά." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "Ουκρανικά" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Δεν είναι δυνατή η φόρτωση του αρχείου δραστηριοτήτων" @@ -34859,6 +36482,7 @@ msgstr "Άγνωστος στόχος" msgid "unknown user" msgstr "άγνωστος χρήστης" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "άγνωστος χρήστης" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Χρησιμοποιείται μόνο σε αυτήν την κοιν #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Βερμόντ" msgid "Version" msgstr "Έκδοση" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Πολύ υψηλό" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Κάμερα web" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Το webhook δημιουργήθηκε" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Το webhook διαγράφηκε" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Όνομα webhook" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Το webhook ενημερώθηκε" diff --git a/fluxer_app/src/features/i18n/locales/en-GB/messages.po b/fluxer_app/src/features/i18n/locales/en-GB/messages.po index c5c6300a7..4e8f95e47 100644 --- a/fluxer_app/src/features/i18n/locales/en-GB/messages.po +++ b/fluxer_app/src/features/i18n/locales/en-GB/messages.po @@ -56,6 +56,31 @@ msgstr "{a} is typing..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} and {c} are typing..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} added a permission override for {user} in {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} added a permission override for @everyone in {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} added a permission override for the role {role} in {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} added a sticker." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} added an emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} added channel permissions for {targetEntity} in {channelNode}." @@ -64,35 +89,200 @@ msgstr "{actor} added channel permissions for {targetEntity} in {channelNode}." msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} added channel permissions for {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} added the bot {target} as a temporary member." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} added the bot {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} added the bot {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} added the emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} added the emoji {namedTarget}." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} added the sticker {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} added the sticker {namedTarget}." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} banned {target} for {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} banned {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} banned {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} changed the nickname of {target} from {oldNick} to {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} changed the permission overrides of the category {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} changed the permission overrides of the channel {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} changed the permission overrides of the link channel {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} changed the permission overrides of the text channel {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} changed the permission overrides of the voice channel {channel}." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} changed the vanity URL from {oldCode} to {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} changed their community profile avatar." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} changed their community profile banner." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} changed their community profile bio to {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} changed their nickname from {oldNick} to {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} created a webhook." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} created the category {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} created the channel {channel} in {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} created the channel {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} created the channel {namedTarget}." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} created the invite {code} for {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} created the invite {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} created the invite {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} created the link channel {channel} in {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} created the link channel {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} created the role {namedTarget}." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} created the role {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} created the text channel {channel} in {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} created the text channel {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} created the voice channel {channel} in {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} created the voice channel {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} created the webhook {name} in {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} created the webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} created the webhook {namedTarget}." @@ -103,49 +293,209 @@ msgstr "{actor} created the webhook {namedTarget}." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} deleted {count, plural, one {# message} other {# messages}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} deleted a message in {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} deleted a message." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} deleted a message{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} deleted a sticker." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} deleted a webhook." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} deleted an emoji." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} deleted multiple messages{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} deleted some messages in {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} deleted some messages." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} deleted the category {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} deleted the channel {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} deleted the channel {namedTarget}." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} deleted the emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} deleted the emoji {namedTarget}." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} deleted the invite {code} for {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} deleted the invite {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} deleted the invite {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} deleted the link channel {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} deleted the role {namedTarget}." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} deleted the role {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} deleted the sticker {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} deleted the sticker {namedTarget}." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} deleted the text channel {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} deleted the voice channel {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} deleted the webhook {name} from {channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} deleted the webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} deleted the webhook {namedTarget}." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} disconnected {target} from {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} disconnected {target} from voice." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} disconnected {targetMember} from voice." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} disconnected from {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} disconnected from voice." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} gave {target} the role {role}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} kicked {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} kicked {targetMember}." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} let {target} hear others in this community again." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} made a change that this version of the app cannot show." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} moved {target} from {oldChannel} to {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} moved {target} to {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} moved {target} to a different voice channel." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} moved {targetMember} to {channelNode}." @@ -154,16 +504,68 @@ msgstr "{actor} moved {targetMember} to {channelNode}." msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} moved {targetMember} to another voice channel." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} moved from {oldChannel} to {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} moved the role {role} down in the member list." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} moved the role {role} down in the role list." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} moved the role {role} up in the member list." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} moved the role {role} up in the role list." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} moved to {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} moved to a different voice channel." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} paused invites." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} performed an audit action on {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} pinned a message in {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} pinned a message." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} pinned a message{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} pruned inactive members." @@ -179,19 +581,249 @@ msgstr "{actor} removed channel permissions for {targetEntity} in {channelNode}. msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} removed channel permissions for {targetEntity}." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} removed the nickname {nick} from {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} removed the permission override for {user} from {channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} removed the permission override for @everyone from {channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} removed the permission override for the role {role} from {channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} removed the role {role} from {target}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} removed the timeout for {target}." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} removed the vanity URL {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} removed their community profile accent colour." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} removed their community profile avatar." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} removed their community profile banner." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} removed their community profile bio." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} removed their community profile pronouns." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} removed their nickname {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} renamed the category {oldName} to {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} renamed the channel {oldName} to {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} renamed the community from {oldName} to {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} renamed the emoji {oldEmoji} to {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} renamed the link channel {oldName} to {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} renamed the role {oldName} to {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} renamed the sticker {oldName} to {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} renamed the text channel {oldName} to {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} renamed the voice channel {oldName} to {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} renamed the webhook {oldName} to {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} reset the member list position for the role {role}." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} resumed invites." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} set a member list position for the role {role}." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} set the nickname of {target} to {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} set the vanity URL to {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} set their community profile accent colour to {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} set their community profile avatar." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} set their community profile banner." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} set their community profile bio to {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} set their community profile pronouns to {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} set their nickname to {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} stopped {target} from hearing others in this community." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} timed out {target} until {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} transferred community ownership to {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} turned {target}'s microphone back on in this community." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} turned off {target}'s microphone in this community." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} unbanned {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} unbanned {targetMember}." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} unpinned a message in {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} unpinned a message." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} unpinned a message{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} updated {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} updated {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} updated a sticker." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} updated a webhook." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} updated an emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} updated channel permissions for {targetEntity} in {channelNode}." @@ -204,35 +836,112 @@ msgstr "{actor} updated channel permissions for {targetEntity}." msgid "{actor} updated roles for {targetMember}." msgstr "{actor} updated roles for {targetMember}." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} updated the category {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} updated the channel {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} updated the channel {namedTarget}." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} updated the community settings." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} updated the emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} updated the emoji {namedTarget}." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} updated the invite {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} updated the invite {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} updated the link channel {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} updated the permission override for {user} in {channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} updated the permission override for @everyone in {channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} updated the permission override for the role {role} in {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} updated the role {namedTarget}." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} updated the role {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} updated the roles of {target}." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} updated the sticker {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} updated the sticker {namedTarget}." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} updated the text channel {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} updated the voice channel {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} updated the webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} updated the webhook {namedTarget}." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} updated their community profile." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# item} other {# items}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# member} other {# members}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# more permission} other {# more permissions}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# mutual community} other {# mutual communities}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {Show # device} other {Show # devices}}" msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Sign out # device} other {Sign out # devices}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "{guildName} channels" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Activity" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Activity log" @@ -2713,10 +3437,60 @@ msgstr "Added {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "Added {length, plural, one {# local file reference} other {# local file references}}." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "Added a chat embed background." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Added a community banner." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Added a community icon." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "Added a content warning with the text {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Added a content warning." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "Added an avatar." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Added an invite background." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Added roles." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Added the member's community profile avatar." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Added the member's community profile banner." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "Added the role {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Alignment controls are only available on wider screens" #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "All <0/>, forever. No billing, no renewals." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "All actions" @@ -3001,10 +3775,12 @@ msgstr "All languages" msgid "All members" msgstr "All members" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "All time" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "All users" @@ -3197,6 +3973,16 @@ msgstr "Allowed {0} and removed allow for {1}." msgid "Allowed {0}." msgstr "Allowed {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "Allowed {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Allowed all members to mention this role." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Allowed callers" @@ -3205,15 +3991,35 @@ msgstr "Allowed callers" msgid "Allowed everyone to mention this role." msgstr "Allowed everyone to mention this role." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Allowed flexible text channel names." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Allowed invites" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Allowed others to clone this community's emojis." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Allowed others to clone this community's stickers." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Allowed redirects" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Allowed up to {count, plural, one {# connection} other {# connections}} per member." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Ban members" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Ban members from the community, with the option to delete their recent messages." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Ban reason" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Block user" msgid "Blocked" msgstr "Blocked" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Blocked the member from sending messages, reacting and joining voice until {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Bot" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Bot added" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Category deleted" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Category full" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Centre" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Centred" @@ -6298,11 +7116,183 @@ msgstr "Change your username" msgid "Changed nickname from {0} to {1}." msgstr "Changed nickname from {0} to {1}." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Changed slowmode from {oldDuration} to {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "Changed the AFK channel from {oldChannel} to {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "Changed the AFK timeout from {oldDuration} to {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Changed the avatar." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Changed the bitrate to {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Changed the block on sending messages, reacting and joining voice to end at {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Changed the chat embed background." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Changed the community banner." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Changed the community icon." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "Changed the connections per member from {oldCount} to {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "Changed the content warning text from {oldText} to {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Changed the custom role icon." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Changed the custom warning text from {oldText} to {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "Changed the default notification setting from {oldSetting} to {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Changed the description from {oldText} to {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Changed the explicit content filter from {oldFilter} to {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Changed the invite background alignment from {oldAlignment} to {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Changed the invite background." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "Changed the link from {oldUrl} to {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Changed the member's community profile avatar." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Changed the member's community profile banner." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "Changed the member's community profile bio to {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "Changed the message history threshold from {oldDate} to {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "Changed the name from {oldName} to {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "Changed the nickname from {oldNick} to {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Changed the role colour from {oldColor} to {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Changed the role icon from {oldEmoji} to {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "Changed the system channel from {oldChannel} to {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Changed the topic from {oldText} to {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "Changed the user limit from {oldCount} to {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "Changed the vanity URL from {oldCode} to {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Changed the verification level from {oldLevel} to {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "Changed the voice region from {oldRegion} to {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "channel" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Channel or category" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Channel overwrite added" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Channel overwrite removed" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Channel overwrite updated" @@ -7815,7 +8805,7 @@ msgstr "Communities with over 250 people are forced onto the \"mentions only\" s #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Delete your messages in this conversation?" msgid "Deleted" msgstr "Deleted" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "Deleted {duration} of the member's recent message history." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Deleted text" msgid "Deleted your messages." msgstr "Deleted your messages." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "deleted-category" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "deleted-channel" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "deleted-role" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "Denied {0} and removed deny for {1}." msgid "Denied {0}." msgstr "Denied {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "Denied {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Embeds unsuppressed" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Emoji cloning enabled" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Emoji created" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Emoji deleted" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Emoji slots full" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Emoji updated" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Filter by account creation date" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Filter by action" @@ -14572,18 +15587,22 @@ msgstr "Filter by roles" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Filter by user" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Filter everyone" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Filter members without roles" @@ -15890,6 +16909,11 @@ msgstr "Granted {0} and revoked {1}." msgid "Granted {0}." msgstr "Granted {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "Granted {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Hey there, {username}! Hope you enjoy your stay." msgid "Hey, {username}, welcome aboard!" msgstr "Hey, {username}, welcome aboard!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Hid join messages in the system channel." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Hid the community owner crown." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Hide your own camera?" msgid "Hide your own screen share?" msgstr "Hide your own screen share?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "High" @@ -17688,7 +18724,7 @@ msgstr "Invite" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "Invite code is {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Invite created" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Invite deleted" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Invite unavailable" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Invite updated" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "Left {keyName}" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Left aligned" @@ -18745,6 +19783,11 @@ msgstr "Let screen readers announce new messages as they arrive in the open chan msgid "Let the community self-moderate" msgstr "Let the community self-moderate" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Let the member hear others in this community again." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Lets custom CSS reveal transparent window regions after restarting the desktop app." @@ -18815,6 +19858,16 @@ msgstr "Liked." msgid "Likes: <0>{countLabel}" msgstr "Likes: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "Limited mentions of this role to members with permission to mention any role." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Limited the channel to {count, plural, one {# user} other {# users}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Louisiana" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Low" @@ -19204,6 +20259,11 @@ msgstr "macOS default" msgid "macOS permissions" msgstr "macOS permissions" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Made the channel inherit its mature content setting." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Marked emoji as animated." msgid "Marked emoji as static." msgstr "Marked emoji as static." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Marked the channel as containing mature content." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Marked the channel as not containing mature content." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "Marked the member as permanent." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Media stop" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Medium" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Medium size (default)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Member" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Member actions for {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Member banned" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Member disconnected" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Member kicked" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Member lists are temporarily unavailable in this community" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Member moved" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Member not found" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Member roles updated" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Member since" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Member unbanned" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Member updated" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Members are removed when offline unless given a role." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Members pruned" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "Members without the {readMessageHistoryPermissionLabel} permission can view messages sent after this date." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Members, selected" @@ -20077,8 +21149,10 @@ msgstr "Mentions of you show up here for {recentMentionsRetentionDays} days." msgid "Mentions of you show up here for {retentionDays} days." msgstr "Mentions of you show up here for {retentionDays} days." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Mentions only" @@ -20104,7 +21178,7 @@ msgstr "message" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Message" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Message debug" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Message deleted" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Message list for {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Message pinned" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Message time" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Message unpinned" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Messages & media" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Messages deleted" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Moderation" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Moderation actions and community changes will appear here." @@ -20915,16 +21989,51 @@ msgstr "Move to" msgid "Move to…" msgstr "Move to…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Moved from {oldChannel} to {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Moved the channel from the category {oldCategory} to the category {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Moved the channel into the category {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Moved the channel to category {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "Moved the role down in the member list." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "Moved the role down in the role list." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Moved the role to position {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "Moved the role up in the member list." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "Moved the role up in the role list." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "New message" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "New messages" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "No local files referenced" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "No logs yet" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "No reason provided" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "No reason was provided." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Non-convert" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Non-convert" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "OAuth2 URL builder" msgid "Objects" msgstr "Objects" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Objects" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Off" @@ -23523,6 +24636,21 @@ msgstr "Original message failed to load" msgid "Original message was deleted" msgstr "Original message was deleted" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Originally banned by {user} on {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Originally banned by {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Originally banned on {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Paused by reduced motion. Turn on to keep animated emojis playing." msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "Paused by reduced motion. Turn on to keep GIFs playing." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Paused invites." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Permanently delete your account and all associated data. This action can msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Permission override added" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Permission override removed" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Permission override updated" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Ready to upgrade?" msgid "Real-time" msgstr "Real-time" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Reason" @@ -26291,26 +27440,166 @@ msgstr "Removed role {oldLabel}." msgid "Removed roles." msgstr "Removed roles." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "Removed the AFK channel." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Removed the avatar." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Removed the channel from its category." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Removed the channel from the category {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Removed the chat embed background." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "Removed the community banner." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Removed the community icon." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "Removed the content warning text." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Removed the content warning." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Removed the custom role icon." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Removed the custom warning text." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Removed the description {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Removed the invite background." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Removed the link." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Removed the member's community profile accent colour." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Removed the member's community profile avatar." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Removed the member's community profile banner." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Removed the member's community profile bio." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "Removed the member's community profile pronouns." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Removed the message history threshold." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "Removed the nickname {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "Removed the override for {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "Removed the role {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Removed the role colour." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Removed the role icon." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Removed the rules channel." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "Removed the system channel." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "Removed the timeout." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "Removed the topic {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Removed the Unicode emoji." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Removed the user limit." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "Removed the vanity URL {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Removed timeout from {targetUserTag}" @@ -26381,6 +27670,11 @@ msgstr "Renamed sticker to {0}." msgid "Renamed the channel to {0}." msgstr "Renamed the channel to {0}." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Renamed the community from {oldName} to {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Require two-factor authentication for moderators before they can ban, ki msgid "Required" msgstr "Required" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "Required 2FA for moderation actions." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Reset spacing" msgid "Reset the connection limit." msgstr "Reset the connection limit." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "Reset the member list position for the role." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Restricted mentions of this role to members with permission." msgid "Resubscribe" msgstr "Resubscribe" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Resumed invites." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Return to sign-in" @@ -27330,6 +28639,11 @@ msgstr "Revoke this invite? Can't be undone." msgid "Revoked {0}." msgstr "Revoked {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "Revoked {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "Right {keyName}" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Right aligned" @@ -27408,7 +28724,7 @@ msgstr "Ringtone" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Role" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Role colour" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Role created" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Role created successfully" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Role deleted" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "Role name is required" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Role updated" @@ -28930,11 +30246,21 @@ msgstr "Sessions" msgid "Set {fieldNode} to {0}." msgstr "Set {fieldNode} to {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Set a custom role icon." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Set a custom status" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Set a member list position for the role." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "Set role colour to <0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Set slowmode to {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Set status" msgid "Set the AFK channel to {0}." msgstr "Set the AFK channel to {0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "Set the AFK channel to {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "Set the AFK timeout to {0} seconds." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "Set the audio quality to {kbps} kbps." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "Set the channel type to {0}." msgid "Set the connection limit to {0}." msgstr "Set the connection limit to {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "Set the content warning text to {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "Set the custom warning text to {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "Set the description to {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "Set the invite splash alignment to {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "Set the link to {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "Set the member's community profile accent colour to {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "Set the member's community profile bio to {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "Set the member's community profile pronouns to {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "Set the message history threshold to {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "Set the nickname to {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Set the public product name, theme colour, and image assets that clients display." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "Set the role colour to {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "Set the role icon to {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "Set the rules channel to {0}." msgid "Set the system channel to {0}." msgstr "Set the system channel to {0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "Set the system channel to {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "Set the topic to {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "Set the user limit to {0}." msgid "Set the vanity URL to {0}." msgstr "Set the vanity URL to {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "Set the vanity URL to {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "Set the voice region to {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "Set the voice region to automatic." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Show your global profile banner in this community" msgid "Show your Visionary as a regular subscription instead" msgstr "Show your Visionary as a regular subscription instead" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Showed members with this role in their own section in the member list." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Something went wrong while issuing your refund. Contact support if this keeps happening." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Something went wrong while loading the activity log." @@ -31105,6 +32531,11 @@ msgstr "Start voice call" msgid "Start with computer" msgstr "Start with computer" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "Started displaying members with this role separately." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "sticker" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "Sticker couldn't be compressed enough" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Sticker created" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Sticker deleted" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Sticker slots full" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Sticker updated" @@ -31412,6 +32843,46 @@ msgstr "Stop watching stream" msgid "Stop." msgstr "Stop." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Stopped allowing flexible text channel names." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Stopped allowing others to clone this community's emojis." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Stopped allowing others to clone this community's stickers." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Stopped displaying members with this role separately." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Stopped hiding join messages in the system channel." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Stopped hiding the community owner crown." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Stopped requiring 2FA for moderation actions." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Stopped the member from hearing others in this community." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Sync with category" msgid "Syntax highlighting" msgstr "Syntax highlighting" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "System" @@ -32449,6 +33922,16 @@ msgstr "The app has crashed. Checking for updates that might fix this issue…" msgid "The app should now be signed in to your account." msgstr "The app should now be signed in to your account." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "The ban had already expired on {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "The ban was scheduled to expire on {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "The bot has been added to <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "The desktop update has been downloaded. Restart {productName} to finish msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "The downloaded file is saved to your computer. Install it with your normal package manager." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "The emoji was uploaded by {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "The file contains the verification token we will fetch from <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "The file you're trying to upload exceeds the maximum size limit of {maxS msgid "The following people can't be added to this group DM:" msgstr "The following people can't be added to this group DM:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "The invite was created by {user} on {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "The invite was created by {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "The invite was created on {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "The invite was never used." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "The invite was scheduled to expire on {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "The invite was set to allow unlimited uses." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "The invite was set to expire after {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "The invite was set to grant temporary membership." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "The invite was set to never expire." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "The language most of your community speaks. Used to filter Discovery results." @@ -32518,6 +34051,11 @@ msgstr "The link may still work. Try again in a moment." msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "The mature content check was cancelled. You can close this tab and try again from the app." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "The member is no longer temporary." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "The new price is already scheduled for {effectiveDate}." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "The override allowed {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "The override denied {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "The page you're looking for doesn't exist or has been moved." @@ -32565,6 +34113,11 @@ msgstr "The provided redirect_uri is not registered for this application." msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "The provided redirect_uri must use HTTP or HTTPS." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "The role granted {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "The sticker was uploaded as animated." msgid "The sticker was uploaded as static." msgstr "The sticker was uploaded as static." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "The sticker was uploaded by {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "The system gave {target} the role {role}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "The system removed the role {role} from {target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "The username <0>{fluxerTag} is already taken. Continuing will reroll msgid "The verification code is invalid or expired." msgstr "The verification code is invalid or expired." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "The webhook was created by {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "This card does not match your billing country, so it cannot be used for this localised currency. Use a local card, or return to {productName} and choose another payment method." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "This category already contains the maximum of {maxChannelsPerCategory} channels." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Track moderator actions across the community." @@ -33953,6 +35526,11 @@ msgstr "Transfer group ownership to {userName}?" msgid "Transfer ownership" msgstr "Transfer ownership" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Transferred community ownership to {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,52 @@ msgstr "Turn on streaming privacy" msgid "Turn text smileys into emoji" msgstr "Turn text smileys into emoji" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Turned off mature content." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Turned off slowmode." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "Turned off the content warning." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Turned off the detached banner." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Turned off the member's microphone in this community." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Turned on mature content." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "Turned on the content warning." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Turned on the detached banner." + +# auto-i18n: reviewed unchanged +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "Turned the member's microphone back on in this community." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Turning off scopes may prevent the app from working correctly." @@ -34471,7 +36095,7 @@ msgid "Ukrainian" msgstr "Ukrainian" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Unable to load activity logs" @@ -34859,6 +36483,7 @@ msgstr "Unknown target" msgid "unknown user" msgstr "unknown user" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36498,8 @@ msgstr "unknown user" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37671,7 @@ msgstr "Used only in this community." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38194,10 @@ msgstr "Vermont" msgid "Version" msgstr "Version" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Very high" @@ -37670,7 +39298,7 @@ msgid "Webcam" msgstr "Webcam" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39309,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Webhook created" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhook deleted" @@ -37697,7 +39325,7 @@ msgid "Webhook name" msgstr "Webhook name" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhook updated" diff --git a/fluxer_app/src/features/i18n/locales/en-US/messages.po b/fluxer_app/src/features/i18n/locales/en-US/messages.po index 5b1c66469..abbfaa2d7 100644 --- a/fluxer_app/src/features/i18n/locales/en-US/messages.po +++ b/fluxer_app/src/features/i18n/locales/en-US/messages.po @@ -56,6 +56,31 @@ msgstr "{a} is typing..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} and {c} are typing..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} added a permission override for {user} in {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} added a permission override for @everyone in {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} added a permission override for the role {role} in {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} added a sticker." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} added an emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} added channel permissions for {targetEntity} in {channelNode}." @@ -64,35 +89,200 @@ msgstr "{actor} added channel permissions for {targetEntity} in {channelNode}." msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} added channel permissions for {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} added the bot {target} as a temporary member." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} added the bot {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} added the bot {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} added the emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} added the emoji {namedTarget}." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} added the sticker {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} added the sticker {namedTarget}." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} banned {target} for {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} banned {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} banned {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} changed the nickname of {target} from {oldNick} to {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} changed the permission overrides of the category {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} changed the permission overrides of the channel {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} changed the permission overrides of the link channel {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} changed the permission overrides of the text channel {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} changed the permission overrides of the voice channel {channel}." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} changed the vanity URL from {oldCode} to {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} changed their community profile avatar." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} changed their community profile banner." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} changed their community profile bio to {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} changed their nickname from {oldNick} to {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} created a webhook." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} created the category {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} created the channel {channel} in {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} created the channel {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} created the channel {namedTarget}." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} created the invite {code} for {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} created the invite {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} created the invite {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} created the link channel {channel} in {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} created the link channel {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} created the role {namedTarget}." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} created the role {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} created the text channel {channel} in {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} created the text channel {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} created the voice channel {channel} in {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} created the voice channel {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} created the webhook {name} in {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} created the webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} created the webhook {namedTarget}." @@ -103,49 +293,209 @@ msgstr "{actor} created the webhook {namedTarget}." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} deleted {count, plural, one {# message} other {# messages}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} deleted a message in {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} deleted a message." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} deleted a message{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} deleted a sticker." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} deleted a webhook." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} deleted an emoji." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} deleted multiple messages{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} deleted some messages in {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} deleted some messages." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} deleted the category {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} deleted the channel {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} deleted the channel {namedTarget}." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} deleted the emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} deleted the emoji {namedTarget}." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} deleted the invite {code} for {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} deleted the invite {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} deleted the invite {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} deleted the link channel {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} deleted the role {namedTarget}." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} deleted the role {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} deleted the sticker {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} deleted the sticker {namedTarget}." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} deleted the text channel {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} deleted the voice channel {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} deleted the webhook {name} from {channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} deleted the webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} deleted the webhook {namedTarget}." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} disconnected {target} from {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} disconnected {target} from voice." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} disconnected {targetMember} from voice." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} disconnected from {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} disconnected from voice." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} gave {target} the role {role}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} kicked {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} kicked {targetMember}." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} let {target} hear others in this community again." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} made a change that this version of the app cannot show." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} moved {target} from {oldChannel} to {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} moved {target} to {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} moved {target} to a different voice channel." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} moved {targetMember} to {channelNode}." @@ -154,16 +504,68 @@ msgstr "{actor} moved {targetMember} to {channelNode}." msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} moved {targetMember} to another voice channel." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} moved from {oldChannel} to {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} moved the role {role} down in the member list." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} moved the role {role} down in the role list." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} moved the role {role} up in the member list." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} moved the role {role} up in the role list." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} moved to {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} moved to a different voice channel." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} paused invites." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} performed an audit action on {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} pinned a message in {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} pinned a message." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} pinned a message{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} pruned inactive members." @@ -179,19 +581,249 @@ msgstr "{actor} removed channel permissions for {targetEntity} in {channelNode}. msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} removed channel permissions for {targetEntity}." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} removed the nickname {nick} from {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} removed the permission override for {user} from {channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} removed the permission override for @everyone from {channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} removed the permission override for the role {role} from {channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} removed the role {role} from {target}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} removed the timeout for {target}." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} removed the vanity URL {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} removed their community profile accent color." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} removed their community profile avatar." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} removed their community profile banner." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} removed their community profile bio." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} removed their community profile pronouns." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} removed their nickname {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} renamed the category {oldName} to {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} renamed the channel {oldName} to {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} renamed the community from {oldName} to {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} renamed the emoji {oldEmoji} to {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} renamed the link channel {oldName} to {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} renamed the role {oldName} to {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} renamed the sticker {oldName} to {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} renamed the text channel {oldName} to {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} renamed the voice channel {oldName} to {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} renamed the webhook {oldName} to {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} reset the member list position for the role {role}." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} resumed invites." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} set a member list position for the role {role}." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} set the nickname of {target} to {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} set the vanity URL to {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} set their community profile accent color to {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} set their community profile avatar." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} set their community profile banner." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} set their community profile bio to {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} set their community profile pronouns to {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} set their nickname to {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} stopped {target} from hearing others in this community." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} timed out {target} until {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} transferred community ownership to {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} turned {target}'s microphone back on in this community." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} turned off {target}'s microphone in this community." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} unbanned {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} unbanned {targetMember}." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} unpinned a message in {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} unpinned a message." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} unpinned a message{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} updated {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} updated {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} updated a sticker." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} updated a webhook." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} updated an emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} updated channel permissions for {targetEntity} in {channelNode}." @@ -204,35 +836,112 @@ msgstr "{actor} updated channel permissions for {targetEntity}." msgid "{actor} updated roles for {targetMember}." msgstr "{actor} updated roles for {targetMember}." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} updated the category {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} updated the channel {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} updated the channel {namedTarget}." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} updated the community settings." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} updated the emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} updated the emoji {namedTarget}." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} updated the invite {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} updated the invite {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} updated the link channel {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} updated the permission override for {user} in {channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} updated the permission override for @everyone in {channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} updated the permission override for the role {role} in {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} updated the role {namedTarget}." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} updated the role {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} updated the roles of {target}." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} updated the sticker {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} updated the sticker {namedTarget}." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} updated the text channel {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} updated the voice channel {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} updated the webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} updated the webhook {namedTarget}." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} updated their community profile." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# item} other {# items}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# member} other {# members}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# more permission} other {# more permissions}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# mutual community} other {# mutual communities}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {Show # device} other {Show # devices}}" msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Sign out # device} other {Sign out # devices}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "{guildName} channels" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Activity" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Activity log" @@ -2713,10 +3437,60 @@ msgstr "Added {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "Added {length, plural, one {# local file reference} other {# local file references}}." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "Added a chat embed background." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Added a community banner." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Added a community icon." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "Added a content warning with the text {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Added a content warning." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "Added an avatar." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Added an invite background." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Added roles." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Added the member's community profile avatar." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Added the member's community profile banner." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "Added the role {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Alignment controls are only available on wider screens" #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "All <0/>, forever. No billing, no renewals." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "All actions" @@ -3001,10 +3775,12 @@ msgstr "All languages" msgid "All members" msgstr "All members" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "All time" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "All users" @@ -3197,6 +3973,16 @@ msgstr "Allowed {0} and removed allow for {1}." msgid "Allowed {0}." msgstr "Allowed {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "Allowed {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Allowed all members to mention this role." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Allowed callers" @@ -3205,15 +3991,35 @@ msgstr "Allowed callers" msgid "Allowed everyone to mention this role." msgstr "Allowed everyone to mention this role." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Allowed flexible text channel names." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Allowed invites" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Allowed others to clone this community's emojis." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Allowed others to clone this community's stickers." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Allowed redirects" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Allowed up to {count, plural, one {# connection} other {# connections}} per member." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Ban members" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Ban members from the community, with the option to delete their recent messages." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Ban reason" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Block user" msgid "Blocked" msgstr "Blocked" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Blocked the member from sending messages, reacting and joining voice until {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Bot" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Bot added" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Category deleted" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Category full" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Center" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Centered" @@ -6298,11 +7116,183 @@ msgstr "Change your username" msgid "Changed nickname from {0} to {1}." msgstr "Changed nickname from {0} to {1}." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Changed slowmode from {oldDuration} to {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "Changed the AFK channel from {oldChannel} to {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "Changed the AFK timeout from {oldDuration} to {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Changed the avatar." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Changed the bitrate to {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Changed the block on sending messages, reacting and joining voice to end at {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Changed the chat embed background." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Changed the community banner." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Changed the community icon." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "Changed the connections per member from {oldCount} to {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "Changed the content warning text from {oldText} to {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Changed the custom role icon." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Changed the custom warning text from {oldText} to {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "Changed the default notification setting from {oldSetting} to {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Changed the description from {oldText} to {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Changed the explicit content filter from {oldFilter} to {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Changed the invite background alignment from {oldAlignment} to {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Changed the invite background." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "Changed the link from {oldUrl} to {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Changed the member's community profile avatar." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Changed the member's community profile banner." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "Changed the member's community profile bio to {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "Changed the message history threshold from {oldDate} to {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "Changed the name from {oldName} to {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "Changed the nickname from {oldNick} to {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Changed the role color from {oldColor} to {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Changed the role icon from {oldEmoji} to {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "Changed the system channel from {oldChannel} to {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Changed the topic from {oldText} to {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "Changed the user limit from {oldCount} to {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "Changed the vanity URL from {oldCode} to {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Changed the verification level from {oldLevel} to {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "Changed the voice region from {oldRegion} to {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "channel" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Channel or category" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Channel overwrite added" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Channel overwrite removed" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Channel overwrite updated" @@ -7815,7 +8805,7 @@ msgstr "Communities with over 250 people are forced onto the \"mentions only\" s #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Delete your messages in this conversation?" msgid "Deleted" msgstr "Deleted" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "Deleted {duration} of the member's recent message history." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Deleted text" msgid "Deleted your messages." msgstr "Deleted your messages." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "deleted-category" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "deleted-channel" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "deleted-role" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "Denied {0} and removed deny for {1}." msgid "Denied {0}." msgstr "Denied {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "Denied {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Embeds unsuppressed" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Emoji cloning enabled" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Emoji created" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Emoji deleted" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Emoji slots full" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Emoji updated" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Filter by account creation date" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Filter by action" @@ -14572,18 +15587,22 @@ msgstr "Filter by roles" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Filter by user" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Filter everyone" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Filter members without roles" @@ -15890,6 +16909,11 @@ msgstr "Granted {0} and revoked {1}." msgid "Granted {0}." msgstr "Granted {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "Granted {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Hey there, {username}! Hope you enjoy your stay." msgid "Hey, {username}, welcome aboard!" msgstr "Hey, {username}, welcome aboard!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Hid join messages in the system channel." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Hid the community owner crown." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Hide your own camera?" msgid "Hide your own screen share?" msgstr "Hide your own screen share?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "High" @@ -17688,7 +18724,7 @@ msgstr "Invite" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "Invite code is {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Invite created" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Invite deleted" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Invite unavailable" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Invite updated" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "Left {keyName}" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Left aligned" @@ -18745,6 +19783,11 @@ msgstr "Let screen readers announce new messages as they arrive in the open chan msgid "Let the community self-moderate" msgstr "Let the community self-moderate" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Let the member hear others in this community again." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Lets custom CSS reveal transparent window regions after restarting the desktop app." @@ -18815,6 +19858,16 @@ msgstr "Liked." msgid "Likes: <0>{countLabel}" msgstr "Likes: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "Limited mentions of this role to members with permission to mention any role." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Limited the channel to {count, plural, one {# user} other {# users}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Louisiana" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Low" @@ -19204,6 +20259,11 @@ msgstr "macOS default" msgid "macOS permissions" msgstr "macOS permissions" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Made the channel inherit its mature content setting." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Marked emoji as animated." msgid "Marked emoji as static." msgstr "Marked emoji as static." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Marked the channel as containing mature content." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Marked the channel as not containing mature content." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "Marked the member as permanent." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Media stop" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Medium" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Medium size (default)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Member" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Member actions for {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Member banned" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Member disconnected" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Member kicked" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Member lists are temporarily unavailable in this community" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Member moved" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Member not found" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Member roles updated" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Member since" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Member unbanned" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Member updated" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Members are removed when offline unless given a role." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Members pruned" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "Members without the {readMessageHistoryPermissionLabel} permission can view messages sent after this date." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Members, selected" @@ -20077,8 +21149,10 @@ msgstr "Mentions of you show up here for {recentMentionsRetentionDays} days." msgid "Mentions of you show up here for {retentionDays} days." msgstr "Mentions of you show up here for {retentionDays} days." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Mentions only" @@ -20104,7 +21178,7 @@ msgstr "message" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Message" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Message debug" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Message deleted" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Message list for {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Message pinned" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Message time" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Message unpinned" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Messages & media" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Messages deleted" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Moderation" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Moderation actions and community changes will appear here." @@ -20915,16 +21989,51 @@ msgstr "Move to" msgid "Move to…" msgstr "Move to…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Moved from {oldChannel} to {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Moved the channel from the category {oldCategory} to the category {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Moved the channel into the category {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Moved the channel to category {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "Moved the role down in the member list." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "Moved the role down in the role list." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Moved the role to position {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "Moved the role up in the member list." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "Moved the role up in the role list." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "New message" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "New messages" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "No local files referenced" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "No logs yet" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "No reason provided" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "No reason was provided." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Non-convert" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Non-convert" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "OAuth2 URL builder" msgid "Objects" msgstr "Objects" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Objects" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Off" @@ -23523,6 +24636,21 @@ msgstr "Original message failed to load" msgid "Original message was deleted" msgstr "Original message was deleted" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Originally banned by {user} on {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Originally banned by {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Originally banned on {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Paused by reduced motion. Turn on to keep animated emojis playing." msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "Paused by reduced motion. Turn on to keep GIFs playing." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Paused invites." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Permanently delete your account and all associated data. This action can msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Permission override added" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Permission override removed" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Permission override updated" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Ready to upgrade?" msgid "Real-time" msgstr "Real-time" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Reason" @@ -26291,26 +27440,166 @@ msgstr "Removed role {oldLabel}." msgid "Removed roles." msgstr "Removed roles." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "Removed the AFK channel." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Removed the avatar." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Removed the channel from its category." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Removed the channel from the category {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Removed the chat embed background." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "Removed the community banner." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Removed the community icon." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "Removed the content warning text." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Removed the content warning." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Removed the custom role icon." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Removed the custom warning text." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Removed the description {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Removed the invite background." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Removed the link." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Removed the member's community profile accent color." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Removed the member's community profile avatar." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Removed the member's community profile banner." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Removed the member's community profile bio." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "Removed the member's community profile pronouns." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Removed the message history threshold." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "Removed the nickname {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "Removed the override for {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "Removed the role {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Removed the role color." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Removed the role icon." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Removed the rules channel." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "Removed the system channel." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "Removed the timeout." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "Removed the topic {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Removed the Unicode emoji." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Removed the user limit." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "Removed the vanity URL {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Removed timeout from {targetUserTag}" @@ -26381,6 +27670,11 @@ msgstr "Renamed sticker to {0}." msgid "Renamed the channel to {0}." msgstr "Renamed the channel to {0}." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Renamed the community from {oldName} to {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Require two-factor authentication for moderators before they can ban, ki msgid "Required" msgstr "Required" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "Required 2FA for moderation actions." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Reset spacing" msgid "Reset the connection limit." msgstr "Reset the connection limit." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "Reset the member list position for the role." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Restricted mentions of this role to members with permission." msgid "Resubscribe" msgstr "Resubscribe" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Resumed invites." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Return to sign-in" @@ -27330,6 +28639,11 @@ msgstr "Revoke this invite? Can't be undone." msgid "Revoked {0}." msgstr "Revoked {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "Revoked {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "Right {keyName}" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Right aligned" @@ -27408,7 +28724,7 @@ msgstr "Ringtone" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Role" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Role color" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Role created" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Role created successfully" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Role deleted" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "Role name is required" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Role updated" @@ -28930,11 +30246,21 @@ msgstr "Sessions" msgid "Set {fieldNode} to {0}." msgstr "Set {fieldNode} to {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Set a custom role icon." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Set a custom status" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Set a member list position for the role." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "Set role color to <0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Set slowmode to {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Set status" msgid "Set the AFK channel to {0}." msgstr "Set the AFK channel to {0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "Set the AFK channel to {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "Set the AFK timeout to {0} seconds." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "Set the audio quality to {kbps} kbps." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "Set the channel type to {0}." msgid "Set the connection limit to {0}." msgstr "Set the connection limit to {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "Set the content warning text to {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "Set the custom warning text to {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "Set the description to {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "Set the invite splash alignment to {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "Set the link to {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "Set the member's community profile accent color to {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "Set the member's community profile bio to {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "Set the member's community profile pronouns to {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "Set the message history threshold to {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "Set the nickname to {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Set the public product name, theme color, and image assets that clients display." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "Set the role color to {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "Set the role icon to {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "Set the rules channel to {0}." msgid "Set the system channel to {0}." msgstr "Set the system channel to {0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "Set the system channel to {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "Set the topic to {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "Set the user limit to {0}." msgid "Set the vanity URL to {0}." msgstr "Set the vanity URL to {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "Set the vanity URL to {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "Set the voice region to {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "Set the voice region to automatic." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Show your global profile banner in this community" msgid "Show your Visionary as a regular subscription instead" msgstr "Show your Visionary as a regular subscription instead" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Showed members with this role in their own section in the member list." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Something went wrong while issuing your refund. Contact support if this keeps happening." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Something went wrong while loading the activity log." @@ -31105,6 +32531,11 @@ msgstr "Start voice call" msgid "Start with computer" msgstr "Start with computer" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "Started displaying members with this role separately." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "sticker" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "Sticker couldn't be compressed enough" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Sticker created" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Sticker deleted" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Sticker slots full" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Sticker updated" @@ -31412,6 +32843,46 @@ msgstr "Stop watching stream" msgid "Stop." msgstr "Stop." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Stopped allowing flexible text channel names." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Stopped allowing others to clone this community's emojis." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Stopped allowing others to clone this community's stickers." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Stopped displaying members with this role separately." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Stopped hiding join messages in the system channel." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Stopped hiding the community owner crown." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Stopped requiring 2FA for moderation actions." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Stopped the member from hearing others in this community." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Sync with category" msgid "Syntax highlighting" msgstr "Syntax highlighting" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "System" @@ -32449,6 +33922,16 @@ msgstr "The app has crashed. Checking for updates that might fix this issue…" msgid "The app should now be signed in to your account." msgstr "The app should now be signed in to your account." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "The ban had already expired on {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "The ban was scheduled to expire on {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "The bot has been added to <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "The desktop update has been downloaded. Restart {productName} to finish msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "The downloaded file is saved to your computer. Install it with your normal package manager." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "The emoji was uploaded by {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "The file contains the verification token we will fetch from <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "The file you're trying to upload exceeds the maximum size limit of {maxS msgid "The following people can't be added to this group DM:" msgstr "The following people can't be added to this group DM:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "The invite was created by {user} on {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "The invite was created by {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "The invite was created on {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "The invite was never used." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "The invite was scheduled to expire on {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "The invite was set to allow unlimited uses." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "The invite was set to expire after {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "The invite was set to grant temporary membership." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "The invite was set to never expire." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "The language most of your community speaks. Used to filter Discovery results." @@ -32518,6 +34051,11 @@ msgstr "The link may still work. Try again in a moment." msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "The mature content check was canceled. You can close this tab and try again from the app." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "The member is no longer temporary." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "The new price is already scheduled for {effectiveDate}." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "The override allowed {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "The override denied {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "The page you're looking for doesn't exist or has been moved." @@ -32565,6 +34113,11 @@ msgstr "The provided redirect_uri is not registered for this application." msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "The provided redirect_uri must use HTTP or HTTPS." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "The role granted {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "The sticker was uploaded as animated." msgid "The sticker was uploaded as static." msgstr "The sticker was uploaded as static." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "The sticker was uploaded by {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "The system gave {target} the role {role}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "The system removed the role {role} from {target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "The username <0>{fluxerTag} is already taken. Continuing will reroll msgid "The verification code is invalid or expired." msgstr "The verification code is invalid or expired." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "The webhook was created by {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "This card does not match your billing country, so it cannot be used for this localized currency. Use a local card, or return to {productName} and choose another payment method." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "This category already contains the maximum of {maxChannelsPerCategory} channels." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Track moderator actions across the community." @@ -33953,6 +35526,11 @@ msgstr "Transfer group ownership to {userName}?" msgid "Transfer ownership" msgstr "Transfer ownership" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Transferred community ownership to {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Turn on streaming privacy" msgid "Turn text smileys into emoji" msgstr "Turn text smileys into emoji" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Turned off mature content." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Turned off slowmode." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "Turned off the content warning." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Turned off the detached banner." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Turned off the member's microphone in this community." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Turned on mature content." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "Turned on the content warning." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Turned on the detached banner." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "Turned the member's microphone back on in this community." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Turning off scopes may prevent the app from working correctly." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "Ukrainian" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Unable to load activity logs" @@ -34859,6 +36482,7 @@ msgstr "Unknown target" msgid "unknown user" msgstr "unknown user" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "unknown user" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Used only in this community." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Vermont" msgid "Version" msgstr "Version" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Very high" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Webcam" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Webhook created" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhook deleted" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Webhook name" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhook updated" diff --git a/fluxer_app/src/features/i18n/locales/es-419/messages.po b/fluxer_app/src/features/i18n/locales/es-419/messages.po index 4b0eb8664..2141d142e 100644 --- a/fluxer_app/src/features/i18n/locales/es-419/messages.po +++ b/fluxer_app/src/features/i18n/locales/es-419/messages.po @@ -56,6 +56,31 @@ msgstr "{a} está escribiendo..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} y {c} están escribiendo..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} agregó permisos específicos para {user} en {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} agregó permisos específicos para @everyone en {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} agregó permisos específicos para el rol {role} en {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} agregó un sticker." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} agregó un emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} agregó permisos de canal para {targetEntity} en {channelNode}." @@ -64,35 +89,200 @@ msgstr "{actor} agregó permisos de canal para {targetEntity} en {channelNode}." msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} agregó permisos de canal para {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} agregó al bot {target} como miembro temporal." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} agregó el bot {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} agregó al bot {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} agregó el emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} agregó el emoji {namedTarget}." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} agregó el sticker {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} agregó el sticker {namedTarget}." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} baneó a {target} por {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} baneó a {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} baneó a {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} cambió el bloqueo que impide a {target} enviar mensajes, reaccionar y unirse a voz para que finalice el {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} cambió el apodo de {target} de {oldNick} a {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} cambió los permisos de la categoría {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} cambió los permisos del canal {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} cambió los permisos del canal enlazado {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} cambió los permisos del canal de texto {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} cambió los permisos del canal de voz {channel}." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} cambió la URL personalizada de {oldCode} a {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} cambió el avatar de su perfil de comunidad." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} cambió el banner de su perfil de comunidad." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} cambió la biografía de su perfil de comunidad a {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} cambió su apodo de {oldNick} a {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} creó un webhook." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} creó la categoría {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} creó el canal {channel} en {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} creó el canal {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} creó el canal {namedTarget}." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} creó la invitación {code} para {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} creó la invitación {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} creó la invitación {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} creó el canal enlazado {channel} en {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} creó el canal enlazado {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} creó el rol {namedTarget}." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} creó el rol {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} creó el canal de texto {channel} en {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} creó el canal de texto {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} creó el canal de voz {channel} en {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} creó el canal de voz {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} creó el webhook {name} en {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} creó el webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} creó el webhook {namedTarget}." @@ -103,49 +293,209 @@ msgstr "{actor} creó el webhook {namedTarget}." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} eliminó {0} {bulkCount, plural, one {mensaje} other {mensajes}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} eliminó {count, plural, one {1 mensaje} other {# mensajes}} en {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} eliminó {count, plural, one {# mensaje} other {# mensajes}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} eliminó un mensaje en {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} eliminó un mensaje." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} eliminó un mensaje{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} eliminó un sticker." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} eliminó un webhook." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} eliminó un emoji." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} eliminó varios mensajes{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} eliminó algunos mensajes en {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} eliminó algunos mensajes." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} eliminó la categoría {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} eliminó el canal {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} eliminó el canal {namedTarget}." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} eliminó el emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} eliminó el emoji {namedTarget}." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} eliminó la invitación {code} para {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} eliminó la invitación {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} eliminó la invitación {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} eliminó el canal enlazado {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} eliminó el rol {namedTarget}." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} eliminó el rol {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} eliminó el sticker {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} eliminó el sticker {namedTarget}." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} eliminó el canal de texto {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} eliminó el canal de voz {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} eliminó el webhook {name} de {channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} eliminó el webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} eliminó el webhook {namedTarget}." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} desconectó a {target} de {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} desconectó a {target} de la llamada de voz." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} desconectó a {targetMember} de la llamada de voz." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} se desconectó de {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} se desconectó de la llamada de voz." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} le dio el rol {role} a {target}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} expulsó a {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} expulsó a {targetMember}." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} permitió que {target} volviera a escuchar a otros en esta comunidad." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} hizo un cambio que esta versión de la app no puede mostrar." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} movió a {target} de {oldChannel} a {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} movió a {target} a {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} movió a {target} a otro canal de voz." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} movió a {targetMember} a {channelNode}." @@ -154,16 +504,68 @@ msgstr "{actor} movió a {targetMember} a {channelNode}." msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} movió a {targetMember} a otro canal de voz." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} se movió de {oldChannel} a {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} bajó el rol {role} en la lista de miembros." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} bajó el rol {role} en la lista de roles." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} movió el rol {role} hacia arriba en la lista de miembros." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} subió el rol {role} en la lista de roles." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} se movió a {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} se movió a otro canal de voz." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} pausó las invitaciones." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} realizó una acción de auditoría en {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} fijó un mensaje en {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} fijó un mensaje." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} fijó un mensaje{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} eliminó miembros inactivos." @@ -179,19 +581,249 @@ msgstr "{actor} eliminó los permisos del canal para {targetEntity} en {channelN msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} eliminó los permisos del canal para {targetEntity}." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} eliminó el apodo {nick} de {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} eliminó los permisos específicos para {user} de {channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} eliminó los permisos específicos para @everyone de {channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} eliminó los permisos específicos para el rol {role} de {channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} eliminó el rol {role} de {target}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} quitó el aislamiento temporal de {target}." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} eliminó la URL personalizada {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} eliminó el color de énfasis de su perfil de comunidad." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} eliminó el avatar de su perfil de comunidad." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} eliminó el banner de su perfil de comunidad." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} eliminó la biografía de su perfil de comunidad." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} eliminó los pronombres de su perfil de comunidad." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} eliminó su apodo {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} cambió el nombre de la categoría {oldName} a {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} cambió el nombre del canal de {oldName} a {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} cambió el nombre de la comunidad de {oldName} a {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} cambió el nombre del emoji {oldEmoji} a {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} cambió el nombre del canal enlazado de {oldName} a {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} cambió el nombre del rol {oldName} a {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} cambió el nombre del sticker de {oldName} a {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} cambió el nombre del canal de texto {oldName} a {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} cambió el nombre del canal de voz de {oldName} a {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} cambió el nombre del webhook de {oldName} a {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} restableció la posición en la lista de miembros para el rol {role}." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} reanudó las invitaciones." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} estableció una posición en la lista de miembros para el rol {role}." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} cambió el apodo de {target} a {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} estableció la URL personalizada a {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} cambió el color de énfasis de su perfil de comunidad a {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} agregó el avatar de su perfil de comunidad." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} agregó el banner de su perfil de comunidad." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} cambió la biografía de su perfil de comunidad a {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} cambió los pronombres de su perfil de comunidad a {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} cambió su apodo a {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} impidió que {target} escuchara a otros en esta comunidad." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} aplicó aislamiento temporal a {target} hasta el {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} transfirió la propiedad de la comunidad a {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} activó de nuevo el micrófono de {target} en esta comunidad." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} desactivó el micrófono de {target} en esta comunidad." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} desbaneó a {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} desbaneó a {targetMember}." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} desfijó un mensaje en {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} desfijó un mensaje." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} desfijó un mensaje{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} actualizó a {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} actualizó a {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} actualizó un sticker." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} actualizó un webhook." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} actualizó un emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} actualizó los permisos del canal para {targetEntity} en {channelNode}." @@ -204,35 +836,112 @@ msgstr "{actor} actualizó los permisos del canal para {targetEntity}." msgid "{actor} updated roles for {targetMember}." msgstr "{actor} actualizó los roles de {targetMember}." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} actualizó la categoría {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} actualizó el canal {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} actualizó el canal {namedTarget}." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} actualizó la configuración de la comunidad." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} actualizó el emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} actualizó el emoji {namedTarget}." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} actualizó la invitación {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} actualizó la invitación {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} actualizó el canal enlazado {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} actualizó los permisos específicos para {user} en {channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} actualizó los permisos específicos para @everyone en {channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} actualizó los permisos específicos para el rol {role} en {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} actualizó el rol {namedTarget}." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} actualizó el rol {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} actualizó los roles de {target}." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} actualizó el sticker {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} actualizó el sticker {namedTarget}." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} actualizó el canal de texto {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} actualizó el canal de voz {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} actualizó el webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} actualizó el webhook {namedTarget}." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} actualizó su perfil de la comunidad." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# elemento} other {# elementos}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# miembro} other {# miembros}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# permiso más} other {# permisos más}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# comunidad en común} other {# comunidades en común}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {Mostrar # dispositivo} other {Mostrar # dispositivo msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Cerrar sesión en # dispositivo} other {Cerrar sesión en # dispositivos}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {El enlace de invitación se limitó a # uso.} other {El enlace de invitación se limitó a # usos.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {El enlace de invitación se usó # vez.} other {El enlace de invitación se usó # veces.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "Canales de {guildName}" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Actividad" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Registro de actividad" @@ -2713,10 +3437,60 @@ msgstr "Se agregó {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "Se {length, plural, one {agregó # referencia} other {agregaron # referencias}} de archivo local." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "Se agregó un fondo para el contenido incrustado en el chat." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Se agregó un banner para la comunidad." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Se agregó un ícono para la comunidad." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "Se agregó una advertencia de contenido con el texto {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Se agregó una advertencia de contenido." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "Se agregó un avatar." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Se agregó una imagen de fondo para invitaciones." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Roles agregados." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Se agregó el avatar del perfil de comunidad del miembro." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Se agregó el banner del perfil de comunidad del miembro." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "Se agregó el rol {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Los controles de alineación solo están disponibles en pantallas más a #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Todos los <0/>, para siempre. Sin facturación ni renovaciones." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Todas las acciones" @@ -3001,10 +3775,12 @@ msgstr "Todos los idiomas" msgid "All members" msgstr "Todos los miembros" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "Todo el historial" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Todos los usuarios" @@ -3197,6 +3973,16 @@ msgstr "Permitió {0} y eliminó el permiso para {1}." msgid "Allowed {0}." msgstr "Permitido {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "Se permitieron {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Se permitió que todos los miembros mencionaran este rol." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Personas autorizadas para llamar" @@ -3205,15 +3991,35 @@ msgstr "Personas autorizadas para llamar" msgid "Allowed everyone to mention this role." msgstr "Se permitió que todos mencionaran este rol." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Se permitieron nombres de canales de texto flexibles." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Invitaciones permitidas" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Se permitió que otros clonaran los emojis de esta comunidad." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Se permitió que otros clonaran los stickers de esta comunidad." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Redirecciones permitidas" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Se permitieron hasta {count, plural, one {# conexión} other {# conexiones}} por miembro." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Banear miembros" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Banear a miembros de la comunidad, con la opción de eliminar sus mensajes recientes." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Motivo del baneo" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Bloquear usuario" msgid "Blocked" msgstr "Bloqueados" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Se le bloqueó al miembro el envío de mensajes, las reacciones y el acceso a voz hasta el {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Bot" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Bot agregado" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Categoría eliminada" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Categoría llena" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Centrar" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Centrado" @@ -6298,11 +7116,183 @@ msgstr "Cambiar tu nombre de usuario" msgid "Changed nickname from {0} to {1}." msgstr "Cambió el apodo de {0} a {1}." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Se cambió el modo lento de {oldDuration} a {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "Se cambió el canal AFK de {oldChannel} a {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "Se cambió el tiempo de inactividad de {oldDuration} a {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "Se cambió la calidad de audio de {oldKbps} kbps a {newKbps} kbps." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Se cambió el avatar." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Se cambió la tasa de bits a {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Se cambió el bloqueo de envío de mensajes, reacciones y acceso a voz para que finalice el {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Se cambió el fondo del contenido incrustado en el chat." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Se cambió el banner de la comunidad." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Se cambió el ícono de la comunidad." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "Se cambió la cantidad de conexiones por miembro de {oldCount} a {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "Se cambió el texto de advertencia de contenido de {oldText} a {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Se cambió el ícono personalizado del rol." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Se cambió el texto de advertencia personalizado de {oldText} a {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "Se cambió la configuración de notificación predeterminada de {oldSetting} a {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Se cambió la descripción de {oldText} a {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Se cambió el filtro de contenido explícito de {oldFilter} a {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Se cambió la alineación de la imagen de fondo de la invitación de {oldAlignment} a {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Se cambió la imagen de fondo de la invitación." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "Se cambió el enlace de {oldUrl} a {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Se cambió el avatar del perfil de comunidad del miembro." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Se cambió el banner del perfil de comunidad del miembro." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "Se cambió la biografía del perfil de comunidad del miembro a {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "Se cambió el umbral del historial de mensajes de {oldDate} a {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "Se cambió el nombre de {oldName} a {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "Se cambió el apodo de {oldNick} a {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Se cambió el color del rol de {oldColor} a {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Se cambió el ícono del rol de {oldEmoji} a {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "Se cambió el canal del sistema de {oldChannel} a {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Se cambió el tema de {oldText} a {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "Se cambió el límite de usuarios de {oldCount} a {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "Se cambió la URL personalizada de {oldCode} a {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Se cambió el nivel de verificación de {oldLevel} a {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "Se cambió la región de voz de {oldRegion} a {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "canal" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Canal o categoría" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Permisos específicos del canal agregados" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Permisos específicos del canal eliminados" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Permisos específicos del canal actualizados" @@ -7815,7 +8805,7 @@ msgstr "Las comunidades con más de 250 personas se configuran automáticamente #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "¿Eliminar tus mensajes en esta conversación?" msgid "Deleted" msgstr "Eliminado" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "Se eliminó el historial de mensajes del miembro de hasta {duration} de antigüedad." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Texto eliminado" msgid "Deleted your messages." msgstr "Se eliminaron tus mensajes." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "categoría-eliminada" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "canal-eliminado" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "rol-eliminado" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "Se denegó {0} y se eliminó la denegación para {1}." msgid "Denied {0}." msgstr "Se denegó {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "Se denegaron {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Contenido incrustado restaurado" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Clonación de emojis habilitada" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Emoji creado" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Emoji eliminado" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Espacios de emoji llenos" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Emoji actualizado" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Filtrar por fecha de creación de cuenta" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Filtrar por acción" @@ -14572,18 +15587,22 @@ msgstr "Filtrar por roles" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Filtrar por usuario" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Filtrar los mensajes de todos" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Filtrar los mensajes de miembros sin roles" @@ -15890,6 +16909,11 @@ msgstr "Se otorgaron {0} y se revocaron {1}." msgid "Granted {0}." msgstr "Se otorgó {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "Se otorgaron {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "¡Hola, {username}! Esperamos que disfrutes tu estadía." msgid "Hey, {username}, welcome aboard!" msgstr "¡Hola, {username}, te damos la bienvenida!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Se ocultaron los mensajes de bienvenida en el canal del sistema." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Se ocultó la corona del propietario de la comunidad." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "¿Ocultar tu cámara?" msgid "Hide your own screen share?" msgstr "¿Ocultar tu pantalla compartida?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Alto" @@ -17688,7 +18724,7 @@ msgstr "Invitar" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "El código de invitación es {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Invitación creada" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Invitación eliminada" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Invitación no disponible" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Invitación actualizada" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (izq.)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Alineado a la izquierda" @@ -18745,6 +19783,11 @@ msgstr "Permitir que los lectores de pantalla anuncien los mensajes nuevos a med msgid "Let the community self-moderate" msgstr "Permitir que la comunidad se automodere" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Se permitió que el miembro volviera a escuchar a otros en esta comunidad." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Permite que el CSS personalizado revele regiones transparentes de la ventana después de reiniciar la aplicación de escritorio." @@ -18815,6 +19858,16 @@ msgstr "Te gusta." msgid "Likes: <0>{countLabel}" msgstr "Me gusta: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "Se limitaron las menciones de este rol a los miembros con permiso para mencionar cualquier rol." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Se limitó el canal a {count, plural, one {# usuario} other {# usuarios}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Luisiana" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Bajo" @@ -19204,6 +20259,11 @@ msgstr "Predeterminado de macOS" msgid "macOS permissions" msgstr "Permisos de macOS" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Se hizo que el canal heredara su configuración de contenido para adultos." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Marcó el emoji como animado." msgid "Marked emoji as static." msgstr "Marcó el emoji como estático." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Se marcó el canal para contenido para adultos." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Se marcó el canal como sin contenido para adultos." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "Marcó al miembro como permanente." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Detener reproducción" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Medio" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Tamaño mediano (predeterminado)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Miembro" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Acciones de miembro para {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Miembro baneado" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Miembro desconectado" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Miembro expulsado" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Las listas de miembros no están disponibles temporalmente en esta comunidad" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Miembro movido" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Miembro no encontrado" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Roles de miembro actualizados" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Miembro desde" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Miembro desbaneado" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Miembro actualizado" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Los miembros se eliminan cuando están desconectados, a menos que se les asigne un rol." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Miembros eliminados" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "Los miembros sin el permiso {readMessageHistoryPermissionLabel} pueden ver los mensajes enviados después de esta fecha." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Miembros, seleccionados" @@ -20077,8 +21149,10 @@ msgstr "Las menciones que recibes aparecen aquí durante {recentMentionsRetentio msgid "Mentions of you show up here for {retentionDays} days." msgstr "Las menciones que recibes aparecen aquí durante {retentionDays, plural, one {# día} other {# días}}." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Solo menciones" @@ -20104,7 +21178,7 @@ msgstr "mensaje" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Mensaje" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Depurar mensaje" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Mensaje eliminado" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Lista de mensajes de {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Mensaje fijado" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Hora del mensaje" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Mensaje desfijado" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Mensajes y contenido multimedia" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Mensajes eliminados" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Moderación" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Las acciones de moderación y los cambios de la comunidad aparecerán aquí." @@ -20915,16 +21989,51 @@ msgstr "Mover a" msgid "Move to…" msgstr "Mover a…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Se movió de {oldChannel} a {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Se movió el canal de la categoría {oldCategory} a la categoría {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Se movió el canal a la categoría {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Movió el canal a la categoría {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "Se movió el rol hacia abajo en la lista de miembros." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "Se bajó el rol en la lista de roles." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Movió el rol a la posición {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "Se subió el rol en la lista de miembros." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "Se movió el rol hacia arriba en la lista de roles." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Mensaje nuevo" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Mensajes nuevos" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "No hay archivos locales referenciados" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Aún no hay registros" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "No se dio ningún motivo" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "No se proporcionó ningún motivo." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "No convertir" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "No convertir" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "Creador de URL de OAuth2" msgid "Objects" msgstr "Objetos" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Objetos" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Desactivado" @@ -23523,6 +24636,21 @@ msgstr "No se pudo cargar el mensaje original" msgid "Original message was deleted" msgstr "El mensaje original fue eliminado" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Baneado originalmente por {user} el {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Baneado originalmente por {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Baneado originalmente el {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Pausado por movimiento reducido. Actívalo para que los emojis animados msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "Pausado por movimiento reducido. Actívalo para que los GIF sigan reproduciéndose." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Se pausaron las invitaciones." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Elimina tu cuenta y todos los datos asociados de forma permanente. Esta msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Elimina permanentemente los mensajes que enviaste en MD, MD grupales y comunidades. El proceso se ejecuta en segundo plano y recibirás un mensaje directo cuando termine." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Permisos específicos agregados" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Permisos específicos eliminados" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Permisos específicos actualizados" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "¿Listo para actualizar?" msgid "Real-time" msgstr "Tiempo real" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Motivo" @@ -26291,26 +27440,166 @@ msgstr "Se eliminó el rol {oldLabel}." msgid "Removed roles." msgstr "Roles eliminados." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "Se eliminó el canal AFK." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Se eliminó el avatar." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Se quitó el canal de su categoría." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Se quitó el canal de la categoría {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Se eliminó el fondo del contenido incrustado en el chat." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "Se eliminó el banner de la comunidad." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Se eliminó el ícono de la comunidad." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "Se eliminó el texto de advertencia de contenido." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Se eliminó la advertencia de contenido." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Se eliminó el ícono personalizado del rol." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Se eliminó el texto de advertencia personalizado." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Se eliminó la descripción {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Se eliminó el fondo de invitación." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Se eliminó el enlace." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Se eliminó el color de énfasis del perfil de comunidad del miembro." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Se eliminó el avatar del perfil de comunidad del miembro." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Se eliminó el banner del perfil de comunidad del miembro." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Se eliminó la biografía del perfil de comunidad del miembro." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "Se eliminaron los pronombres del perfil de comunidad del miembro." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Se eliminó el umbral del historial de mensajes." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "Se eliminó el apodo {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "Se quitaron los permisos específicos para {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "Se eliminó el rol {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Se eliminó el color del rol." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Se eliminó el ícono del rol." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Se dejó de usar el canal de normas." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "Se dejó de usar el canal del sistema." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "Se quitó el aislamiento temporal." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "Se eliminó el tema {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Se eliminó el emoji Unicode." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Se eliminó el límite de usuarios." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "Se eliminó la URL personalizada {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Se quitó el aislamiento temporal de {targetUserTag}" @@ -26381,6 +27670,11 @@ msgstr "Se cambió el nombre del sticker a {0}." msgid "Renamed the channel to {0}." msgstr "Se cambió el nombre del canal a {0}." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Se cambió el nombre de la comunidad de {oldName} a {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Requerir autenticación de dos factores a los moderadores para que pueda msgid "Required" msgstr "Obligatorio" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "Se requirió 2FA para las acciones de moderación." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Restablecer espaciado" msgid "Reset the connection limit." msgstr "Restableció el límite de conexión." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "Se restableció la posición en la lista de miembros para el rol." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Las menciones de este rol se restringieron a los miembros con el permiso msgid "Resubscribe" msgstr "Volver a suscribirte" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Se reanudaron las invitaciones." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Volver a iniciar sesión" @@ -27330,6 +28639,11 @@ msgstr "¿Revocar esta invitación? No se puede deshacer." msgid "Revoked {0}." msgstr "Revocaste {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "Se revocaron {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (der.)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Alineado a la derecha" @@ -27408,7 +28724,7 @@ msgstr "Tono de llamada" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Rol" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Color del rol" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Rol creado" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Rol creado con éxito" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Rol eliminado" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "El nombre del rol es obligatorio" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Rol actualizado" @@ -28930,11 +30246,21 @@ msgstr "Sesiones" msgid "Set {fieldNode} to {0}." msgstr "Se estableció {fieldNode} en {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Se estableció un ícono personalizado para el rol." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Establecer un estado personalizado" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Se estableció una posición en la lista de miembros para el rol." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "Se estableció el color del rol en <0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "Se estableció el modo lento en {0} {seconds, plural, one {segundo} other {segundos}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Se estableció el modo lento en {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Establecer estado" msgid "Set the AFK channel to {0}." msgstr "Se estableció el canal de inactividad en {0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "Se estableció el canal AFK en {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "Se estableció el tiempo de espera de inactividad en segundos: {0}." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "Se estableció la calidad de audio en {kbps} kbps." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "Se estableció el tipo de canal en {0}." msgid "Set the connection limit to {0}." msgstr "Se estableció el límite de conexiones en {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "Se estableció el texto de advertencia de contenido en {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "Se estableció el texto de advertencia personalizado en {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "Se estableció la descripción en {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "Se estableció la alineación del fondo de invitación en {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "Se estableció el enlace en {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "Se estableció el color de énfasis del perfil de comunidad del miembro en {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "Se estableció la biografía del perfil de comunidad del miembro en {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "Se establecieron los pronombres del perfil de comunidad del miembro en {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "Se estableció el umbral del historial de mensajes en {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "Se estableció el apodo en {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Define el nombre público del producto, el color del tema y los recursos de imagen que muestran los clientes." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "Se estableció el color del rol a {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "Se estableció el ícono del rol como {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "Se estableció el canal de normas en {0}." msgid "Set the system channel to {0}." msgstr "Se estableció el canal del sistema en {0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "Se estableció el canal del sistema en {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "Se estableció el tema en {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "Se estableció el límite de usuarios en {0}." msgid "Set the vanity URL to {0}." msgstr "Se estableció la URL personalizada en {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "Se estableció la URL personalizada a {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "Se estableció la región de voz en {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "Se estableció la región de voz en automática." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Mostrar tu banner de perfil global en esta comunidad" msgid "Show your Visionary as a regular subscription instead" msgstr "Mostrar tu Visionary como una suscripción normal" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Se mostró a los miembros con este rol en su propia sección de la lista de miembros." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Algo salió mal al procesar tu reembolso. Si esto sigue ocurriendo, contacta a soporte." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Ocurrió un problema al cargar el registro de actividad." @@ -31105,6 +32531,11 @@ msgstr "Iniciar llamada de voz" msgid "Start with computer" msgstr "Iniciar con la computadora" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "Se empezó a mostrar a los miembros con este rol por separado." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "sticker" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "No se pudo comprimir el sticker lo suficiente" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Sticker creado" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Sticker eliminado" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Espacios de stickers llenos" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Sticker actualizado" @@ -31412,6 +32843,46 @@ msgstr "Dejar de ver la transmisión" msgid "Stop." msgstr "Detener." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Se dejó de permitir nombres de canales de texto flexibles." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Se dejó de permitir que otros clonaran los emojis de esta comunidad." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Se dejó de permitir que otros clonaran los stickers de esta comunidad." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Se dejó de mostrar a los miembros con este rol por separado." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Se dejó de ocultar los mensajes de bienvenida en el canal del sistema." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Se dejó de ocultar la corona del propietario de la comunidad." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Se dejó de requerir 2FA para las acciones de moderación." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Se impidió que el miembro escuchara a otros en esta comunidad." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Sincronizar con la categoría" msgid "Syntax highlighting" msgstr "Resaltado de sintaxis" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "Sistema" @@ -32449,6 +33922,16 @@ msgstr "La app se cerró inesperadamente. Buscando actualizaciones que puedan so msgid "The app should now be signed in to your account." msgstr "La aplicación ya debería haber iniciado sesión en tu cuenta." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "El baneo ya había expirado el {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "El baneo estaba programado para expirar el {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "El bot se agregó a <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "La actualización de escritorio se ha descargado. Reinicia {productName} msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "El archivo descargado se guarda en tu computadora. Instálalo con tu gestor de paquetes habitual." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "El emoji lo subió {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "El archivo contiene el token de verificación que obtendremos de <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "El archivo que intentas subir excede el tamaño máximo permitido de {ma msgid "The following people can't be added to this group DM:" msgstr "Las siguientes personas no se pueden agregar a este chat grupal:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "La invitación fue creada por {user} el {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "La invitación fue creada por {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "La invitación se creó el {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "La invitación nunca se usó." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "La invitación estaba programada para expirar el {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "La invitación se configuró para permitir usos ilimitados." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "La invitación se configuró para expirar después de {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "La invitación se configuró para otorgar membresía temporal." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "La invitación se configuró para que nunca expirara." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "El idioma que la mayoría de tu comunidad habla. Se usa para filtrar los resultados de Descubrir." @@ -32518,6 +34051,11 @@ msgstr "Es posible que el enlace siga funcionando. Intenta de nuevo en un moment msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "Se canceló la verificación de contenido para adultos. Puedes cerrar esta pestaña e intentarlo de nuevo desde la aplicación." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "El miembro ya no es temporal." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "El nuevo precio ya está programado para el {effectiveDate}." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "El nuevo canal de voz reutilizará los permisos, el límite de usuarios y la tasa de bits de <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "Los permisos específicos permitían {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "Los permisos específicos denegaban {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "La página que buscas no existe o se movió." @@ -32565,6 +34113,11 @@ msgstr "La redirect_uri proporcionada no está registrada para esta aplicación. msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "La redirect_uri proporcionada debe usar HTTP o HTTPS." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "El rol otorgaba {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "El sticker se subió como animado." msgid "The sticker was uploaded as static." msgstr "El sticker se subió como estático." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "El sticker lo subió {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "El sistema le dio el rol de {role} a {target}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "El sistema eliminó el rol {role} de {target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "El nombre de usuario <0>{fluxerTag} ya está en uso. Si continúas, msgid "The verification code is invalid or expired." msgstr "El código de verificación no es válido o ha caducado." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "El webhook fue creado por {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Esta tarjeta no se emitió en tu país de facturación, por lo que no puedes usarla para pagar en esta moneda local. Usa una tarjeta local o vuelve a {productName} y elige otro método de pago." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "Esta categoría ya contiene el máximo de {maxChannelsPerCategory} canales." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Registra las acciones de los moderadores en toda la comunidad." @@ -33953,6 +35526,11 @@ msgstr "¿Transferir la propiedad del grupo a {userName}?" msgid "Transfer ownership" msgstr "Transferir la propiedad" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Se transfirió la propiedad de la comunidad a {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Activar privacidad de la transmisión" msgid "Turn text smileys into emoji" msgstr "Convertir los emoticonos de texto en emojis" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Se desactivó el contenido para adultos." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Se desactivó el modo lento." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "Se desactivó la advertencia de contenido." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Se desactivó el banner independiente." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Se desactivó el micrófono del miembro en esta comunidad." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Se activó el contenido para adultos." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "Se activó la advertencia de contenido." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Se activó el banner independiente." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "Se volvió a activar el micrófono del miembro en esta comunidad." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Desactivar ámbitos podría impedir que la aplicación funcione correctamente." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "Ucraniano" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "No se pudieron cargar los registros de actividad" @@ -34859,6 +36482,7 @@ msgstr "Destino desconocido" msgid "unknown user" msgstr "usuario desconocido" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "usuario desconocido" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Solo se usa en esta comunidad." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Vermont" msgid "Version" msgstr "Versión" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Muy alto" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Cámara web" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Webhook creado" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhook eliminado" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Nombre del webhook" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhook actualizado" diff --git a/fluxer_app/src/features/i18n/locales/es-ES/messages.po b/fluxer_app/src/features/i18n/locales/es-ES/messages.po index d9120a8c9..5de2ba1f8 100644 --- a/fluxer_app/src/features/i18n/locales/es-ES/messages.po +++ b/fluxer_app/src/features/i18n/locales/es-ES/messages.po @@ -56,6 +56,31 @@ msgstr "{a} está escribiendo..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} y {c} están escribiendo..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} añadió una anulación de permisos para {user} en {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} añadió una anulación de permisos para @everyone en {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} añadió una anulación de permisos para el rol {role} en {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} añadió una pegatina." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} añadió un emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} añadió permisos de canal para {targetEntity} en {channelNode}." @@ -64,35 +89,200 @@ msgstr "{actor} añadió permisos de canal para {targetEntity} en {channelNode}. msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} añadió permisos de canal para {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} añadió el bot {target} como miembro temporal." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} añadió el bot {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} añadió el bot {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} añadió el emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} añadió el emoji {namedTarget}." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} añadió la pegatina {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} añadió la pegatina {namedTarget}." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} baneó a {target} durante {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} baneó a {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} ha baneado a {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} cambió el bloqueo que impide a {target} enviar mensajes, reaccionar y unirse a voz para que finalice el {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} cambió el apodo de {target} de {oldNick} a {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} cambió los permisos de la categoría {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} cambió los permisos del canal {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} cambió los permisos del canal enlazado {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} cambió los permisos del canal de texto {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} cambió los permisos del canal de voz {channel}." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} cambió la URL personalizada de {oldCode} a {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} ha cambiado el avatar de su perfil en la comunidad." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} cambió el banner de su perfil en la comunidad." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} cambió la biografía de su perfil en la comunidad a {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} cambió su apodo de {oldNick} a {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} ha creado un webhook." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} ha creado la categoría {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} creó el canal {channel} en {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} ha creado el canal {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} creó el canal {namedTarget}." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} creó la invitación {code} para {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} creó la invitación {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} creó la invitación {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} creó el canal enlazado {channel} en {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} ha creado el canal enlazado {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} ha creado el rol {namedTarget}." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} creó el rol {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} creó el canal de texto {channel} en {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} ha creado el canal de texto {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} creó el canal de voz {channel} en {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} ha creado el canal de voz {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} creó el webhook {name} en {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} ha creado el webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} creó el webhook {namedTarget}." @@ -103,49 +293,209 @@ msgstr "{actor} creó el webhook {namedTarget}." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} eliminó {0} {bulkCount, plural, one {mensaje} other {mensajes}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} eliminó {count, plural, one {# mensaje} other {# mensajes}} en {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} ha eliminado {count, plural, one {# mensaje} other {# mensajes}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} ha eliminado un mensaje en {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} ha eliminado un mensaje." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} eliminó un mensaje{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} ha eliminado una pegatina." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} ha eliminado un webhook." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} ha eliminado un emoji." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} eliminó varios mensajes{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} ha eliminado algunos mensajes en {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} ha eliminado algunos mensajes." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} eliminó la categoría {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} ha eliminado el canal {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} eliminó el canal {namedTarget}." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} ha eliminado el emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} eliminó el emoji {namedTarget}." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} eliminó la invitación {code} para {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} ha eliminado la invitación {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} eliminó la invitación {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} eliminó el canal enlazado {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} eliminó el rol {namedTarget}." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} eliminó el rol {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} eliminó la pegatina {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} eliminó la pegatina {namedTarget}." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} eliminó el canal de texto {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} eliminó el canal de voz {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} eliminó el webhook {name} del canal {channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} eliminó el webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} eliminó el webhook {namedTarget}." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} desconectó a {target} de {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} ha desconectado a {target} de la llamada de voz." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} ha desconectado a {targetMember} de la llamada de voz." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} se ha desconectado de {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} se desconectó del canal de voz." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} le dio a {target} el rol de {role}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} expulsó a {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} ha expulsado a {targetMember}." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} volvió a permitir que {target} escuchara a los demás en esta comunidad." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} ha realizado un cambio que esta versión de la app no puede mostrar." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} movió a {target} de {oldChannel} a {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} movió a {target} a {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} movió a {target} a otro canal de voz." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} movió a {targetMember} a {channelNode}." @@ -154,16 +504,68 @@ msgstr "{actor} movió a {targetMember} a {channelNode}." msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} movió a {targetMember} a otro canal de voz." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} se ha movido de {oldChannel} a {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} bajó el rol {role} en la lista de miembros." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} bajó el rol {role} en la lista de roles." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} ha subido el rol {role} en la lista de miembros." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} ha subido el rol {role} en la lista de roles." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} se ha movido a {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} se ha movido a otro canal de voz." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} ha pausado las invitaciones." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} realizó una acción de auditoría en {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} fijó un mensaje en {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} ha fijado un mensaje." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} ha fijado un mensaje{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} eliminó miembros inactivos." @@ -179,19 +581,249 @@ msgstr "{actor} eliminó los permisos del canal para {targetEntity} en {channelN msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} eliminó los permisos del canal para {targetEntity}." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} eliminó el apodo {nick} de {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} eliminó la anulación de permisos para {user} de {channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} eliminó la anulación de permisos para @everyone de {channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} eliminó la anulación de permisos del rol {role} en {channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} eliminó el rol {role} de {target}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} quitó el aislamiento temporal de {target}." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} eliminó la URL personalizada {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} eliminó el color de énfasis de su perfil en la comunidad." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} ha eliminado el avatar de su perfil en la comunidad." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} ha eliminado el banner de su perfil en la comunidad." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} ha eliminado la biografía de su perfil en la comunidad." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} eliminó los pronombres de su perfil en la comunidad." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} eliminó su apodo {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} cambió el nombre de la categoría {oldName} a {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} cambió el nombre del canal {oldName} a {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} cambió el nombre de la comunidad de {oldName} a {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} cambió el nombre del emoji {oldEmoji} a {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} cambió el nombre del canal enlazado de {oldName} a {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} cambió el nombre del rol {oldName} a {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} cambió el nombre de la pegatina de {oldName} a {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} cambió el nombre del canal de texto {oldName} a {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} cambió el nombre del canal de voz de {oldName} a {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} cambió el nombre del webhook de {oldName} a {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} ha restablecido la posición en la lista de miembros para el rol {role}." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} ha reanudado las invitaciones." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} estableció una posición en la lista de miembros para el rol {role}." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} estableció el apodo de {target} en {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} estableció la URL personalizada a {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} estableció el color de énfasis de su perfil en la comunidad en {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} añadió el avatar de su perfil en la comunidad." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} añadió el banner de su perfil en la comunidad." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} ha establecido la biografía de su perfil en la comunidad en {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} estableció los pronombres de su perfil en la comunidad en {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} estableció su apodo en {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} ha impedido que {target} escuche a otros en esta comunidad." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} aplicó aislamiento temporal a {target} hasta el {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} transfirió la propiedad de la comunidad a {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} ha vuelto a activar el micrófono de {target} en esta comunidad." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} desactivó el micrófono de {target} en esta comunidad." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} revocó el baneo de {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} ha desbaneado a {targetMember}." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} desancló un mensaje en {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} ha desanclado un mensaje." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} desfijó un mensaje{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} actualizó a {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} actualizó a {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} ha actualizado una pegatina." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} actualizó un webhook." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} ha actualizado un emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} actualizó los permisos del canal para {targetEntity} en {channelNode}." @@ -204,35 +836,112 @@ msgstr "{actor} actualizó los permisos del canal para {targetEntity}." msgid "{actor} updated roles for {targetMember}." msgstr "{actor} actualizó los roles de {targetMember}." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} actualizó la categoría {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} actualizó el canal {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} actualizó el canal {namedTarget}." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} ha actualizado los ajustes de la comunidad." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} ha actualizado el emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} ha actualizado el emoji {namedTarget}." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} actualizó la invitación {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} actualizó la invitación {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} actualizó el canal enlazado {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} actualizó la anulación de permisos para {user} en {channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} actualizó la anulación de permisos para @everyone en {channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} actualizó la anulación de permisos del rol {role} en {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} ha actualizado el rol {namedTarget}." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} actualizó el rol {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} actualizó los roles de {target}." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} ha actualizado la pegatina {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} actualizó la pegatina {namedTarget}." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} actualizó el canal de texto {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} actualizó el canal de voz {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} actualizó el webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} actualizó el webhook {namedTarget}." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} ha actualizado su perfil de la comunidad." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# elemento} other {# elementos}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# miembro} other {# miembros}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# permiso más} other {# permisos más}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# comunidad en común} other {# comunidades en común}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {Mostrar # dispositivo} other {Mostrar # dispositivo msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Cerrar sesión en # dispositivo} other {Cerrar sesión en # dispositivos}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {La invitación se limitó a # uso.} other {La invitación se limitó a # usos.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {La invitación se usó # vez.} other {La invitación se usó # veces.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "Canales de {guildName}" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Actividad" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Registro de actividad" @@ -2713,10 +3437,60 @@ msgstr "Se ha añadido {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "{length, plural, one {Se añadió # referencia de archivo local} other {Se añadieron # referencias de archivo local}}." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "Se ha añadido un fondo para el contenido incrustado en el chat." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Se añadió un banner para la comunidad." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Se añadió un icono para la comunidad." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "Se añadió una advertencia de contenido con el texto {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Se añadió una advertencia de contenido." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "Se añadió un avatar." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Se ha añadido una imagen de fondo para las invitaciones." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Roles añadidos." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Se añadió el avatar del perfil del miembro en la comunidad." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Se añadió el banner del perfil del miembro en la comunidad." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "Se añadió el rol {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Los controles de alineación solo están disponibles en pantallas más a #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Todas las <0/>, para siempre. Sin facturación ni renovaciones." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Todas las acciones" @@ -3001,10 +3775,12 @@ msgstr "Todos los idiomas" msgid "All members" msgstr "Todos los miembros" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "Todo el historial" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Todos los usuarios" @@ -3197,6 +3973,16 @@ msgstr "Se permitió {0} y se eliminó el permiso para {1}." msgid "Allowed {0}." msgstr "Permitido {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "Permitido {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Se ha permitido que todos los miembros mencionen este rol." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Personas autorizadas para llamar" @@ -3205,15 +3991,35 @@ msgstr "Personas autorizadas para llamar" msgid "Allowed everyone to mention this role." msgstr "Se permitió que todos mencionaran este rol." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Se han permitido nombres de canales de texto flexibles." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Invitaciones permitidas" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Se ha permitido que otros clonen los emojis de esta comunidad." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Se ha permitido que otros clonen las pegatinas de esta comunidad." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Redirecciones permitidas" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Permitidas hasta {count, plural, one {# conexión} other {# conexiones}} por miembro." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Banear miembros" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Banear a miembros de la comunidad, con la opción de eliminar sus mensajes recientes." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Motivo del baneo" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Bloquear usuario" msgid "Blocked" msgstr "Bloqueados" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Se ha bloqueado al miembro para que no envíe mensajes, reaccione ni se una a voz hasta el {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Bot" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Bot añadido" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Categoría eliminada" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Categoría llena" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Centrar" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Centrado" @@ -6298,11 +7116,183 @@ msgstr "Cambiar tu nombre de usuario" msgid "Changed nickname from {0} to {1}." msgstr "Se cambió el apodo de {0} a {1}." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Se cambió el modo lento de {oldDuration} a {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "Se ha cambiado el canal AFK de {oldChannel} a {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "Se cambió el tiempo de espera de AFK de {oldDuration} a {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "Se cambió la calidad de audio de {oldKbps} kbps a {newKbps} kbps." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Se ha cambiado el avatar." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Se cambió la tasa de bits a {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Se cambió el bloqueo de envío de mensajes, reacciones y acceso a voz para que finalice el {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Se ha cambiado el fondo del contenido incrustado en el chat." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Se ha cambiado el banner de la comunidad." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Se ha cambiado el icono de la comunidad." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "Se cambió el número de conexiones por miembro de {oldCount} a {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "Se cambió el texto de advertencia de contenido de {oldText} a {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Se ha cambiado el icono personalizado del rol." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Se ha cambiado el texto de advertencia personalizado de {oldText} a {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "Se cambió el ajuste de notificación predeterminado de {oldSetting} a {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Se cambió la descripción de {oldText} a {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Se cambió el filtro de contenido explícito de {oldFilter} a {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Se cambió la alineación de la imagen de fondo de la invitación de {oldAlignment} a {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Se ha cambiado el fondo de la invitación." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "Se cambió el enlace de {oldUrl} a {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Se ha cambiado el avatar del perfil del miembro en la comunidad." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Se ha cambiado el banner del perfil del miembro en la comunidad." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "Se ha cambiado la biografía del perfil del miembro en la comunidad a {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "Se cambió el umbral del historial de mensajes de {oldDate} a {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "Se cambió el nombre de {oldName} a {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "Se cambió el apodo de {oldNick} a {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Se ha cambiado el color del rol de {oldColor} a {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Se cambió el icono del rol de {oldEmoji} a {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "Se ha cambiado el canal del sistema de {oldChannel} a {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Se cambió el tema de {oldText} a {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "Se ha cambiado el límite de usuarios de {oldCount} a {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "Se cambió la URL personalizada de {oldCode} a {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Se cambió el nivel de verificación de {oldLevel} a {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "Se cambió la región de voz de {oldRegion} a {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "canal" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Canal o categoría" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Permisos específicos del canal añadidos" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Permisos específicos del canal eliminados" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Permisos específicos del canal actualizados" @@ -7815,7 +8805,7 @@ msgstr "Las comunidades con más de 250 personas se configuran automáticamente #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "¿Eliminar tus mensajes en esta conversación?" msgid "Deleted" msgstr "Eliminado" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "Se eliminó el historial de mensajes del miembro de hasta {duration} de antigüedad." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Texto eliminado" msgid "Deleted your messages." msgstr "Se eliminaron tus mensajes." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "categoría-eliminada" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "canal-eliminado" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "rol-eliminado" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "Se denegó {0} y se eliminó la denegación para {1}." msgid "Denied {0}." msgstr "Denegado {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "Denegado {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Contenido incrustado restaurado" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Clonación de emojis activada" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Emoji creado" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Emoji eliminado" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Espacios para emojis llenos" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Emoji actualizado" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Filtrar por fecha de creación de la cuenta" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Filtrar por acción" @@ -14572,18 +15587,22 @@ msgstr "Filtrar por roles" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Filtrar por usuario" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Filtrar los mensajes de todos" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Filtrar los mensajes de miembros sin roles" @@ -15890,6 +16909,11 @@ msgstr "Se han concedido {0} y revocado {1}." msgid "Granted {0}." msgstr "Se ha concedido {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "Concedido {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "¡Hola, {username}! Esperamos que disfrutes de tu estancia." msgid "Hey, {username}, welcome aboard!" msgstr "¡Hola, {username}, te damos la bienvenida!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Se ocultaron los mensajes de unión en el canal del sistema." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Se ocultó la corona del propietario de la comunidad." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "¿Ocultar tu propia cámara?" msgid "Hide your own screen share?" msgstr "¿Ocultar tu pantalla compartida?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Alto" @@ -17688,7 +18724,7 @@ msgstr "Invitar" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "El código de invitación es {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Invitación creada" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Invitación eliminada" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Invitación no disponible" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Invitación actualizada" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (izq.)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Alineado a la izquierda" @@ -18745,6 +19783,11 @@ msgstr "Permitir que los lectores de pantalla anuncien los mensajes nuevos a med msgid "Let the community self-moderate" msgstr "Permitir que la comunidad se automodere" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Se ha permitido que el miembro vuelva a escuchar a los demás en esta comunidad." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Permite que el CSS personalizado revele regiones transparentes de la ventana después de reiniciar la aplicación de escritorio." @@ -18815,6 +19858,16 @@ msgstr "Marcado con Me gusta." msgid "Likes: <0>{countLabel}" msgstr "Me gusta: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "Se limitaron las menciones de este rol a los miembros con permiso para mencionar cualquier rol." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Se ha limitado el canal a {count, plural, one {# usuario} other {# usuarios}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Luisiana" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Bajo" @@ -19204,6 +20259,11 @@ msgstr "Predeterminado de macOS" msgid "macOS permissions" msgstr "Permisos de macOS" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Se hizo que el canal heredara su configuración de contenido para adultos." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Marcó el emoji como animado." msgid "Marked emoji as static." msgstr "Marcó el emoji como estático." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Se marcó el canal como contenido para adultos." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Se marcó el canal como sin contenido para adultos." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "Marcó al miembro como permanente." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Detener reproducción" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Medio" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Tamaño mediano (predeterminado)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Miembro" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Acciones de miembro para {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Miembro baneado" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Miembro desconectado" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Miembro expulsado" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Las listas de miembros no están disponibles temporalmente en esta comunidad" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Miembro movido" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Miembro no encontrado" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Roles de miembro actualizados" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Miembro desde" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Miembro desbaneado" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Miembro actualizado" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Los miembros se eliminan al desconectarse a menos que se les asigne un rol." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Miembros eliminados" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "Los miembros sin el permiso {readMessageHistoryPermissionLabel} pueden ver los mensajes enviados después de esta fecha." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Miembros, seleccionados" @@ -20077,8 +21149,10 @@ msgstr "Las menciones que recibes aparecen aquí durante {recentMentionsRetentio msgid "Mentions of you show up here for {retentionDays} days." msgstr "Las menciones que recibes aparecen aquí durante {retentionDays, plural, one {# día} other {# días}}." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Solo menciones" @@ -20104,7 +21178,7 @@ msgstr "mensaje" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Mensaje" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Depurar mensaje" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Mensaje eliminado" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Lista de mensajes de {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Mensaje fijado" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Hora del mensaje" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Mensaje desfijado" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Mensajes y contenido multimedia" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Mensajes eliminados" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Moderación" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Aquí aparecerán las acciones de moderación y los cambios de la comunidad." @@ -20915,16 +21989,51 @@ msgstr "Mover a" msgid "Move to…" msgstr "Mover a…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Movido de {oldChannel} a {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Se ha movido el canal de la categoría {oldCategory} a la categoría {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Se ha movido el canal a la categoría {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Se movió el canal a la categoría {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "Se ha bajado el rol en la lista de miembros." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "Se ha bajado el rol en la lista de roles." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Ha movido el rol a la posición {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "Se ha subido el rol en la lista de miembros." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "Se ha subido el rol en la lista de roles." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Nuevo mensaje" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Mensajes nuevos" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "No se hace referencia a archivos locales" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Aún no hay registros" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "No se ha proporcionado ningún motivo" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "No se proporcionó ningún motivo." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "No convertir" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "No convertir" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "Constructor de URL de OAuth2" msgid "Objects" msgstr "Objetos" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Objetos" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Desactivado" @@ -23523,6 +24636,21 @@ msgstr "No se pudo cargar el mensaje original" msgid "Original message was deleted" msgstr "El mensaje original se eliminó" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Baneado originalmente por {user} el {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Baneado originalmente por {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Baneado originalmente el {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Pausado por movimiento reducido. Actívalo para que los emojis animados msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "En pausa por movimiento reducido. Actívalo para que los GIF sigan reproduciéndose." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Se han pausado las invitaciones." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Elimina tu cuenta y todos los datos asociados de forma permanente. Esta msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Elimina permanentemente los mensajes que has enviado en MD, MD de grupo y comunidades. El proceso se ejecuta en segundo plano y recibirás un mensaje directo cuando termine." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Se añadió una anulación de permiso" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Se ha eliminado la anulación de permiso" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Se ha actualizado la anulación de permiso" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "¿Listo para mejorar?" msgid "Real-time" msgstr "Tiempo real" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Motivo" @@ -26291,26 +27440,166 @@ msgstr "Se eliminó el rol {oldLabel}." msgid "Removed roles." msgstr "Roles eliminados." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "Se ha quitado el canal AFK." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Se ha quitado el avatar." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Se quitó el canal de su categoría." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Se ha quitado el canal de la categoría {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Se ha eliminado el fondo del contenido incrustado en el chat." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "Se ha eliminado el banner de la comunidad." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Se ha eliminado el icono de la comunidad." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "Se ha eliminado el texto de advertencia de contenido." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Se ha eliminado la advertencia de contenido." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Se ha eliminado el icono personalizado del rol." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Se ha eliminado el texto de advertencia personalizado." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Se ha eliminado la descripción {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Se ha eliminado el fondo de la invitación." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Se eliminó el enlace." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Se ha eliminado el color de énfasis del perfil del miembro en la comunidad." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Se ha eliminado el avatar del perfil del miembro en la comunidad." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Se ha eliminado el banner del perfil del miembro en la comunidad." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Se ha eliminado la biografía del perfil del miembro en la comunidad." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "Se han eliminado los pronombres del perfil del miembro en la comunidad." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Se ha eliminado el umbral del historial de mensajes." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "Se ha eliminado el apodo {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "Se ha eliminado la anulación de {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "Se ha quitado el rol {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Se ha quitado el color del rol." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Se ha eliminado el icono del rol." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Se dejó de usar el canal de normas." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "Se dejó de usar el canal del sistema." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "Se quitó el aislamiento temporal." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "Se ha eliminado el tema {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Se eliminó el emoji Unicode." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Se eliminó el límite de usuarios." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "Se ha eliminado la URL personalizada {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Se quitó el aislamiento temporal de {targetUserTag}" @@ -26381,6 +27670,11 @@ msgstr "Se ha cambiado el nombre de la pegatina a {0}." msgid "Renamed the channel to {0}." msgstr "Se ha cambiado el nombre del canal a {0}." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Se cambió el nombre de la comunidad de {oldName} a {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Requerir autenticación de dos factores a los moderadores para que pueda msgid "Required" msgstr "Obligatorio" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "Se empezó a requerir 2FA para las acciones de moderación." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Restablecer espaciado" msgid "Reset the connection limit." msgstr "Restableció el límite de conexión." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "Se restableció la posición en la lista de miembros para el rol." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Las menciones de este rol se restringieron a los miembros con el permiso msgid "Resubscribe" msgstr "Volver a suscribirse" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Se reanudaron las invitaciones." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Volver a iniciar sesión" @@ -27330,6 +28639,11 @@ msgstr "¿Revocar esta invitación? No se puede deshacer." msgid "Revoked {0}." msgstr "Se ha revocado {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "Se revocaron {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (der.)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Alineado a la derecha" @@ -27408,7 +28724,7 @@ msgstr "Tono de llamada" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Rol" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Color del rol" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Rol creado" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Rol creado correctamente" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Rol eliminado" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "El nombre del rol es obligatorio" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Rol actualizado" @@ -28930,11 +30246,21 @@ msgstr "Sesiones" msgid "Set {fieldNode} to {0}." msgstr "Se estableció {fieldNode} en {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Se estableció un icono de rol personalizado." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Establecer un estado personalizado" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Se estableció una posición en la lista de miembros para el rol." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "Se ha definido el color del rol como <0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "Se estableció el modo lento en {0} {seconds, plural, one {segundo} other {segundos}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Se estableció el modo lento en {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Establecer estado" msgid "Set the AFK channel to {0}." msgstr "Se estableció el canal de inactividad en {0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "Se ha establecido el canal AFK en {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "Se estableció el tiempo de espera de inactividad en segundos: {0}." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "Se estableció la calidad de audio en {kbps} kbps." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "Se estableció el tipo de canal en {0}." msgid "Set the connection limit to {0}." msgstr "Se estableció el límite de conexiones en {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "Se estableció el texto de advertencia de contenido en {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "Se estableció el texto de advertencia personalizado en {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "Se estableció la descripción en {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "Se estableció la alineación del fondo de invitación en {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "Se estableció el enlace en {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "Se estableció el color de énfasis del perfil del miembro en la comunidad en {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "Se estableció la biografía del perfil del miembro en la comunidad en {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "Se establecieron los pronombres del perfil del miembro en la comunidad en {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "Se estableció el umbral del historial de mensajes en {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "Se estableció el apodo en {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Define el nombre público del producto, el color del tema y los recursos de imagen que muestran los clientes." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "Se ha establecido el color del rol a {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "Se ha establecido el icono del rol como {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "Se estableció el canal de normas en {0}." msgid "Set the system channel to {0}." msgstr "Se estableció el canal del sistema en {0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "Se estableció el canal del sistema en {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "Se estableció el tema en {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "Se estableció el límite de usuarios en {0}." msgid "Set the vanity URL to {0}." msgstr "Se estableció la URL personalizada en {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "Se estableció la URL personalizada a {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "Se estableció la región de voz en {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "Se estableció la región de voz en automático." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Mostrar tu banner de perfil global en esta comunidad" msgid "Show your Visionary as a regular subscription instead" msgstr "Mostrar tu Visionary como una suscripción normal" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Se mostró a los miembros con este rol en su propia sección de la lista de miembros." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Algo salió mal al emitir tu reembolso. Contacta con soporte si esto sigue ocurriendo." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Ocurrió un problema al cargar el registro de actividad." @@ -31105,6 +32531,11 @@ msgstr "Iniciar llamada de voz" msgid "Start with computer" msgstr "Iniciar con el ordenador" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "Se empezó a mostrar a los miembros con este rol por separado." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "pegatina" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "No se pudo comprimir la pegatina lo suficiente" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Pegatina creada" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Pegatina eliminada" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Espacios para pegatinas llenos" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Pegatina actualizada" @@ -31412,6 +32843,46 @@ msgstr "Dejar de ver la transmisión" msgid "Stop." msgstr "Detener." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Se ha dejado de permitir nombres de canales de texto flexibles." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Se ha dejado de permitir que otros clonen los emojis de esta comunidad." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Se ha dejado de permitir que otros clonen las pegatinas de esta comunidad." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Se dejó de mostrar a los miembros con este rol por separado." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Se ha dejado de ocultar los mensajes de unión en el canal del sistema." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Se ha dejado de ocultar la corona de propietario de la comunidad." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Se ha dejado de requerir la autenticación de dos factores (2FA) para las acciones de moderación." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Se ha impedido que el miembro escuche a otros en esta comunidad." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Sincronizar con la categoría" msgid "Syntax highlighting" msgstr "Resaltado de sintaxis" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "Sistema" @@ -32449,6 +33922,16 @@ msgstr "La aplicación se ha bloqueado. Buscando actualizaciones que puedan solu msgid "The app should now be signed in to your account." msgstr "La aplicación debería haber iniciado sesión en tu cuenta." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "El baneo ya había expirado el {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "El baneo iba a expirar el {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "El bot se ha añadido a <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "La actualización para escritorio se ha descargado. Reinicia {productNam msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "El archivo descargado se guarda en tu ordenador. Instálalo con tu gestor de paquetes habitual." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "El emoji lo subió {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "El archivo contiene el token de verificación que obtendremos de <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "El archivo que intentas subir supera el límite de tamaño máximo de {m msgid "The following people can't be added to this group DM:" msgstr "Las siguientes personas no pueden añadirse a este grupo de MD:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "La invitación fue creada por {user} el {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "La invitación la creó {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "La invitación se creó el {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "La invitación nunca se usó." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "La invitación iba a caducar el {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "La invitación se configuró para permitir usos ilimitados." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "La invitación se configuró para caducar después de {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "La invitación se configuró para otorgar membresía temporal." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "La invitación se configuró para que nunca caduque." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "El idioma que habla la mayor parte de tu comunidad. Se usa para filtrar los resultados de Descubrir." @@ -32518,6 +34051,11 @@ msgstr "Es posible que el enlace siga funcionando. Inténtalo de nuevo en un mom msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "Se ha cancelado la comprobación de contenido para adultos. Puedes cerrar esta pestaña y volver a intentarlo desde la aplicación." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "El miembro ya no es temporal." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "El nuevo precio ya está programado para el {effectiveDate}." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "El nuevo canal de voz reutilizará los permisos, el límite de usuarios y la tasa de bits de <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "La anulación permitía {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "La anulación denegaba {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "La página que buscas no existe o se ha movido." @@ -32565,6 +34113,11 @@ msgstr "La redirect_uri proporcionada no está registrada para esta aplicación. msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "La redirect_uri proporcionada debe usar HTTP o HTTPS." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "El rol otorgaba {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "La pegatina se subió como animada." msgid "The sticker was uploaded as static." msgstr "La pegatina se subió como estática." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "La pegatina la subió {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "El sistema otorgó a {target} el rol de {role}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "El sistema eliminó el rol {role} de {target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "El nombre de usuario <0>{fluxerTag} ya está en uso. Si continúas, msgid "The verification code is invalid or expired." msgstr "El código de verificación no es válido o ha caducado." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "El webhook lo creó {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Esta tarjeta no se emitió en tu país de facturación, por lo que no puedes usarla para pagar en esta moneda local. Usa una tarjeta local o vuelve a {productName} y elige otro método de pago." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "Esta categoría ya contiene el máximo de {maxChannelsPerCategory} canales." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Registra las acciones de los moderadores en toda la comunidad." @@ -33953,6 +35526,11 @@ msgstr "¿Transferir la propiedad del grupo a {userName}?" msgid "Transfer ownership" msgstr "Transferir la propiedad" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Se transfirió la propiedad de la comunidad a {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Activar privacidad de la transmisión" msgid "Turn text smileys into emoji" msgstr "Convertir los emoticonos de texto en emojis" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Se desactivó el contenido para adultos." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Se desactivó el modo lento." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "Se ha desactivado la advertencia de contenido." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Se desactivó el banner desvinculado." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Se ha desactivado el micrófono del miembro en esta comunidad." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Se activó el contenido para adultos." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "Se ha activado la advertencia de contenido." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Se activó el banner desvinculado." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "Se ha vuelto a activar el micrófono del miembro en esta comunidad." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Desactivar ámbitos podría impedir que la aplicación funcione correctamente." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "Ucraniano" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "No se pudieron cargar los registros de actividad" @@ -34859,6 +36482,7 @@ msgstr "Objetivo desconocido" msgid "unknown user" msgstr "usuario desconocido" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "usuario desconocido" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Solo se usa en esta comunidad." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Vermont" msgid "Version" msgstr "Versión" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Muy alto" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Cámara web" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Webhook creado" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhook eliminado" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Nombre del webhook" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhook actualizado" diff --git a/fluxer_app/src/features/i18n/locales/fi/messages.po b/fluxer_app/src/features/i18n/locales/fi/messages.po index 37784104f..0e07ab3c7 100644 --- a/fluxer_app/src/features/i18n/locales/fi/messages.po +++ b/fluxer_app/src/features/i18n/locales/fi/messages.po @@ -56,6 +56,31 @@ msgstr "{a} kirjoittaa..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} ja {c} kirjoittavat..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} lisäsi käyttöoikeusasetuksen käyttäjälle {user} kanavassa {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} lisäsi käyttöoikeusasetuksen kaikille jäsenille kanavassa {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} lisäsi roolin {role} käyttöoikeusasetuksen kanavassa {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} lisäsi tarran." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} lisäsi emojin." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} lisäsi kanavan {channelNode} käyttöoikeudet kohteelle {targetEntity}." @@ -64,35 +89,200 @@ msgstr "{actor} lisäsi kanavan {channelNode} käyttöoikeudet kohteelle {target msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} lisäsi kanavan käyttöoikeudet kohteelle {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} lisäsi botin {target} väliaikaiseksi jäseneksi." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} lisäsi botin {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} lisäsi botin {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} lisäsi emojin {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} lisäsi emojin {namedTarget}." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} lisäsi tarran {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} lisäsi tarran {namedTarget}." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} antoi käyttäjälle {target} porttikiellon, jonka kesto on {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} antoi käyttäjälle {target} porttikiellon." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} antoi porttikiellon käyttäjälle {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} muutti käyttäjän {target} viestien lähettämistä, reagoimista ja äänikanavalle liittymistä koskevan eston päättymään {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} muutti käyttäjän {target} lempinimen muodosta {oldNick} muotoon {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} muutti kanavakategorian {channel} käyttöoikeusasetuksia." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} muutti kanavan {channel} käyttöoikeusasetuksia." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} muutti linkkikanavan {channel} käyttöoikeusasetuksia." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} muutti tekstikanavan {channel} käyttöoikeusasetuksia." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} muutti äänikanavan {channel} käyttöoikeusasetuksia." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} muutti mukautetun URL-osoitteen muodosta {oldCode} muotoon {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} vaihtoi yhteisöprofiilinsa avatarin." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} vaihtoi yhteisöprofiilinsa bannerin." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} muutti yhteisöprofiilinsa esittelytekstin muotoon {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} vaihtoi lempinimensä muodosta {oldNick} muotoon {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} loi webhookin." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} loi kategorian {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} loi kanavan {channel} kategoriaan {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} loi kanavan {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} loi kanavan {namedTarget}." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} loi kutsun {code} kanavalle {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} loi kutsun {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} loi kutsun {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} loi linkkikanavan {channel} kategoriaan {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} loi linkkikanavan {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} loi roolin {namedTarget}." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} loi roolin {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} loi tekstikanavan {channel} kategoriaan {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} loi tekstikanavan {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} loi äänikanavan {channel} kategoriaan {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} loi äänikanavan {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} loi webhookin {name} kanavalle {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} loi webhookin {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} loi webhookin {namedTarget}." @@ -103,49 +293,209 @@ msgstr "{actor} loi webhookin {namedTarget}." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} poisti {0} {bulkCount, plural, one {viestin} other {viestiä}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} poisti {count, plural, one {# viestin} other {# viestiä}} kanavalta {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} poisti {count, plural, one {# viestin} other {# viestiä}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} poisti viestin kanavalta {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} poisti viestin." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} poisti viestin{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} poisti tarran." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} poisti webhookin." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} poisti emojin." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} poisti useita viestejä{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} poisti viestejä kanavalta {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} poisti joitakin viestejä." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} poisti kategorian {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} poisti kanavan {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} poisti kanavan {namedTarget}." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} poisti emojin {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} poisti emojin {namedTarget}." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} poisti kutsun {code} kanavalle {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} poisti kutsun {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} poisti kutsun {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} poisti linkkikanavan {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} poisti roolin {namedTarget}." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} poisti roolin {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} poisti tarran {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} poisti tarran {namedTarget}." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} poisti tekstikanavan {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} poisti äänikanavan {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} poisti webhookin {name} kanavalta {channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} poisti webhookin {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} poisti webhookin {namedTarget}." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} poisti käyttäjän {target} kanavalta {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} poisti käyttäjän {target} äänikanavalta." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} katkaisi käyttäjän {targetMember} puheyhteyden." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} poistui kanavalta {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} poistui äänikanavalta." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} antoi roolin {role} käyttäjälle {target}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} poisti käyttäjän {target} yhteisöstä." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} poisti käyttäjän {targetMember} yhteisöstä." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} antoi käyttäjän {target} taas kuulla muita tässä yhteisössä." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} teki muutoksen, jota tämä sovellusversio ei voi näyttää." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} siirsi käyttäjän {target} kanavalta {oldChannel} kanavalle {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} siirsi käyttäjän {target} kanavalle {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} siirsi käyttäjän {target} toiseen äänikanavaan." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} siirsi käyttäjän {targetMember} kanavalle {channelNode}." @@ -154,16 +504,68 @@ msgstr "{actor} siirsi käyttäjän {targetMember} kanavalle {channelNode}." msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} siirsi käyttäjän {targetMember} toiselle äänikanavalle." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} siirtyi kanavalta {oldChannel} kanavalle {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} siirsi roolin {role} alemmas jäsenlistassa." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} siirsi roolin {role} alemmas rooliluettelossa." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} siirsi roolin {role} ylemmäs jäsenlistassa." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} siirsi roolin {role} ylemmäs rooliluettelossa." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} siirtyi kanavalle {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} siirtyi toiseen äänikanavaan." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} keskeytti kutsut." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} suoritti valvontatoimenpiteen kohteelle {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} kiinnitti viestin kanavalle {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} kiinnitti viestin." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} kiinnitti viestin{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} poisti passiiviset jäsenet." @@ -179,19 +581,249 @@ msgstr "{actor} poisti kanavan {channelNode} käyttöoikeudet kohteelta {targetE msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} poisti kanavan käyttöoikeudet kohteelta {targetEntity}." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} poisti lempinimen {nick} käyttäjältä {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} poisti käyttäjän {user} käyttöoikeusasetuksen kanavalta {channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} poisti @everyone-roolin käyttöoikeusasetukset kanavalta {channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} poisti roolin {role} käyttöoikeusasetuksen kanavalta {channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} poisti roolin {role} käyttäjältä {target}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} poisti käyttäjän {target} jäähyn." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} poisti mukautetun URL-osoitteen {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} poisti yhteisöprofiilinsa korostusvärin." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} poisti yhteisöprofiilinsa avatarin." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} poisti yhteisöprofiilinsa bannerin." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} poisti yhteisöprofiilinsa esittelytekstin." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} poisti yhteisöprofiilinsa pronominit." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} poisti lempinimensä {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} nimesi kategorian {oldName} uudeksi nimeksi {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} uudelleennimesi kanavan {oldName} muotoon {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} nimesi yhteisön uudelleen nimestä {oldName} muotoon {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} nimesi emojin {oldEmoji} muotoon {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} nimesi linkkikanavan {oldName} muotoon {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} nimesi roolin {oldName} muotoon {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} nimesi tarran {oldName} uudeksi nimeksi {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} nimesi tekstikanavan {oldName} muotoon {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} nimesi äänikanavan {oldName} muotoon {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} nimesi webhookin {oldName} muotoon {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} nollasi roolin {role} jäsenlistan sijainnin." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} otti kutsut uudelleen käyttöön." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} määritti roolin {role} paikan jäsenlistassa." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} asetti käyttäjän {target} lempinimeksi {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} määritti mukautetuksi URL-osoitteeksi {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} asetti yhteisöprofiilinsa korostusväriksi {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} lisäsi yhteisöprofiilinsa avatarin." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} lisäsi yhteisöprofiilinsa bannerin." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} määritti yhteisöprofiilinsa esittelytekstiksi {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} määritti yhteisöprofiilinsa pronominit muotoon {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} vaihtoi lempinimekseen {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} esti käyttäjää {target} kuulemasta muita tässä yhteisössä." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} antoi käyttäjälle {target} jäähyn {date} asti." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} siirsi yhteisön omistajuuden käyttäjälle {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} kytki käyttäjän {target} mikrofonin takaisin päälle tässä yhteisössä." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} kytki käyttäjän {target} mikrofonin pois päältä tässä yhteisössä." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} kumosi käyttäjän {target} porttikiellon." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} poisti käyttäjän {targetMember} porttikiellon." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} poisti viestin kiinnityksen kanavalta {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} poisti viestin kiinnityksen." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} poisti viestin kiinnityksen{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} päivitti kohdetta {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} päivitti käyttäjän {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} päivitti tarraa." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} päivitti webhookia." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} muokkasi emojia." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} päivitti kanavan {channelNode} käyttöoikeudet kohteelle {targetEntity}." @@ -204,35 +836,112 @@ msgstr "{actor} päivitti kanavan käyttöoikeudet kohteelle {targetEntity}." msgid "{actor} updated roles for {targetMember}." msgstr "{actor} päivitti roolit käyttäjälle {targetMember}." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} päivitti kategorian {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} päivitti kanavan {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} päivitti kanavan {namedTarget}." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} päivitti yhteisön asetukset." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} muokkasi emojia {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} päivitti emojin {namedTarget}." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} päivitti kutsun {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} päivitti kutsun {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} päivitti linkkikanavan {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} muutti käyttöoikeusasetuksia käyttäjälle {user} kanavassa {channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} muutti kaikkien jäsenten (@everyone) käyttöoikeusasetuksia kanavassa {channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} muokkasi roolin {role} käyttöoikeusasetuksia kanavassa {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} päivitti roolin {namedTarget}." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} päivitti roolin {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} päivitti käyttäjän {target} rooleja." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} päivitti tarran {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} päivitti tarran {namedTarget}." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} päivitti tekstikanavan {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} päivitti äänikanavan {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} päivitti webhookin {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} päivitti webhookin {namedTarget}." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} päivitti yhteisöprofiiliaan." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# kohde} other {# kohdetta}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# jäsen} other {# jäsentä}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# muu käyttöoikeus} other {# muuta käyttöoikeutta}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# yhteinen yhteisö} other {# yhteistä yhteisöä}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {Näytä # laite} other {Näytä # laitetta}}" msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Kirjaudu ulos # laitteesta} other {Kirjaudu ulos # laitteesta}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {Kutsua sai käyttää # kerran.} other {Kutsua sai käyttää # kertaa.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {Kutsua käytettiin # kerran.} other {Kutsua käytettiin # kertaa.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "Yhteisön {guildName} kanavat" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Aktiivisuus" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Aktiviteettiloki" @@ -2713,10 +3437,60 @@ msgstr "Lisätty {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "Lisätty {length, plural, one {# paikallinen tiedostoviittaus} other {# paikallista tiedostoviittausta}}." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "Lisätty chat-upotuksen taustakuva." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Lisätty yhteisön banneri." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Lisätty yhteisön kuvake." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "Lisätty sisältövaroitus tekstillä {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Lisätty sisältövaroitus." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "Lisätty avatar." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Lisätty kutsun taustakuva." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Roolit lisätty." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Lisäsi jäsenen yhteisöprofiilin avatarin." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Lisäsi jäsenen yhteisöprofiilin bannerin." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "Lisätty rooli {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Kohdistussäätimet ovat käytettävissä vain leveämmillä näytöill #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Kaikki <0/> ikuisesti. Ei laskutusta, ei uusimisia." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Kaikki toiminnot" @@ -3001,10 +3775,12 @@ msgstr "Kaikki kielet" msgid "All members" msgstr "Kaikki jäsenet" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "Koko ajalta" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Kaikki käyttäjät" @@ -3197,6 +3973,16 @@ msgstr "Sallittu {0} ja sallinta poistettu kohteelta {1}." msgid "Allowed {0}." msgstr "Sallittu {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "Sallittu {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Kaikki jäsenet saivat luvan mainita tämän roolin." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Sallitut soittajat" @@ -3205,15 +3991,35 @@ msgstr "Sallitut soittajat" msgid "Allowed everyone to mention this role." msgstr "Kaikille sallittiin tämän roolin mainitseminen." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Sallittu joustavat tekstikanavien nimet." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Sallitut kutsut" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Sallittu muiden kloonata tämän yhteisön emojeita." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Sallittu muiden kloonata tämän yhteisön tarroja." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Sallitut uudelleenohjaukset" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Sallittu enintään {count, plural, one {# yhteys} other {# yhteyttä}} jäsentä kohden." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Anna porttikielto jäsenille" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Anna jäsenille porttikielto yhteisöön ja poista halutessasi heidän viimeaikaiset viestinsä." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Porttikiellon syy" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Estä käyttäjä" msgid "Blocked" msgstr "Estetyt" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Esti jäseneltä viestien lähettämisen, reagoimisen ja äänikanaville liittymisen {date} asti." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Botti" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Botti lisätty" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Kategoria poistettu" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Kategoria täynnä" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Keskitetty" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Keskitetty" @@ -6298,11 +7116,183 @@ msgstr "Vaihda käyttäjänimesi" msgid "Changed nickname from {0} to {1}." msgstr "Muutti lempinimen: {0} → {1}." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Muutettiin hitaan tilan viive arvosta {oldDuration} arvoon {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "AFK-kanava muutettiin kohteesta {oldChannel} kohteeksi {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "Muutettiin poissaolon aikakatkaisu arvosta {oldDuration} arvoon {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "Muutettiin äänenlaatu arvosta {oldKbps} kbps arvoon {newKbps} kbps." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Vaihdettiin avatar." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Muutti bittinopeudeksi {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Muutettiin viestien lähettämisen, reagoimisen ja äänikanavalle liittymisen esto päättymään {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Muutettu chat-upotuksen taustakuva." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Muutettiin jäsenen yhteisöbanneri." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Muutettiin yhteisön kuvaketta." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "Muutettiin jäsenkohtaisten yhteyksien määrä arvosta {oldCount} arvoon {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "Sisällön varoitusteksti muutettiin muodosta {oldText} muotoon {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Muutettu mukautettu roolikuvake." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Muutettiin mukautettu varoitusteksti muodosta {oldText} muotoon {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "Muutettiin oletusilmoitusasetus arvosta {oldSetting} arvoon {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Muutettiin kuvaus muodosta {oldText} muotoon {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Muutettiin arkaluonteisen sisällön suodatin asetuksesta {oldFilter} asetukseksi {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Muutettiin kutsutaustan kohdistusta kohteesta {oldAlignment} kohteeksi {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Muutettiin kutsun taustakuva." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "Muutettiin linkki osoitteesta {oldUrl} osoitteeseen {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Muutettu jäsenen yhteisöprofiilin avatar." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Muutettu jäsenen yhteisöprofiilin banneri." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "Muutettiin jäsenen yhteisöprofiilin esittelyteksti muotoon {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "Muutettiin viestihistorian raja päivästä {oldDate} päivään {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "Nimi muutettu muodosta {oldName} muotoon {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "Muutettiin lempinimi muodosta {oldNick} muotoon {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Muutettiin roolin väri arvosta {oldColor} arvoon {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Muutettiin roolin kuvake muodosta {oldEmoji} muotoon {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "Järjestelmäkanava vaihdettiin kohteesta {oldChannel} kohteeseen {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Muutettiin aihe muodosta {oldText} muotoon {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "Muutettiin käyttäjäraja arvosta {oldCount} arvoon {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "Muutettiin mukautettu URL-osoite muodosta {oldCode} muotoon {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Muutettiin vahvistustasoa tasolta {oldLevel} tasolle {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "Muutettiin puhealue alueesta {oldRegion} alueeseen {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "kanava" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Kanava tai kategoria" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Kanavan ohitus lisätty" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Kanavan ohitus poistettu" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Kanavan ohitus päivitetty" @@ -7815,7 +8805,7 @@ msgstr "Yli 250 hengen yhteisöissä ilmoitusasetukseksi pakotetaan \"vain maini #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Poistetaanko viestisi tästä keskustelusta?" msgid "Deleted" msgstr "Poistettu" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "Poistettiin jäsenen viimeaikaisesta viestihistoriasta {duration}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Poistettu teksti" msgid "Deleted your messages." msgstr "Viestisi poistettu." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "poistettu-kategoria" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "poistettu-kanava" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "poistettu-rooli" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "Estetty {0} ja esto poistettu: {1}." msgid "Denied {0}." msgstr "Estetty {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "Kielletty {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Upotukset näkyvät taas" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Emojien kloonaus käytössä" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Emoji luotu" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Emoji poistettu" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Emojipaikat täynnä" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Emoji päivitetty" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Suodata tilin luontipäivän mukaan" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Suodata toiminnon mukaan" @@ -14572,18 +15587,22 @@ msgstr "Suodata roolien mukaan" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Suodata käyttäjän mukaan" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Suodata kaikki" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Suodata jäsenet, joilla ei ole roolia" @@ -15890,6 +16909,11 @@ msgstr "Myönnetty {0} ja kumottu {1}." msgid "Granted {0}." msgstr "Myönnetty {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "Myönnetty {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Hei, {username}! Toivottavasti viihdyt täällä." msgid "Hey, {username}, welcome aboard!" msgstr "Hei, {username}, tervetuloa mukaan!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Piilotettiin liittymisviestit järjestelmäkanavalla." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Piilotettiin yhteisön omistajan kruunu." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Piilotetaanko oma kamera?" msgid "Hide your own screen share?" msgstr "Piilotetaanko oma näytönjako?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Korkea" @@ -17688,7 +18724,7 @@ msgstr "Kutsu" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "Kutsukoodi on {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Kutsu luotu" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Kutsu poistettu" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Kutsu ei ole käytettävissä" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Kutsu päivitetty" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (vasen)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Vasemmalle tasattu" @@ -18745,6 +19783,11 @@ msgstr "Anna ruudunlukijoiden ilmoittaa uusista viesteistä niiden saapuessa avo msgid "Let the community self-moderate" msgstr "Anna yhteisön valvoa itse itseään" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Antoi jäsenen taas kuulla muita tässä yhteisössä." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Mukautetun CSS:n avulla työpöytäsovelluksen ikkunan alueet voivat olla läpinäkyviä uudelleenkäynnistyksen jälkeen." @@ -18815,6 +19858,16 @@ msgstr "Tykätty." msgid "Likes: <0>{countLabel}" msgstr "Tykkäykset: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "Rajoitettu roolin mainitseminen jäsenille, joilla on lupa mainita mitä tahansa roolia." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Kanavan käyttö rajattiin {count, plural, one {# käyttäjään} other {# käyttäjään}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Louisiana" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Matala" @@ -19204,6 +20259,11 @@ msgstr "macOS:n oletusarvo" msgid "macOS permissions" msgstr "macOS-käyttöoikeudet" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Asetti kanavan perimään aikuissisältöasetuksensa." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Merkitsi emojin animoiduksi." msgid "Marked emoji as static." msgstr "Merkitsi emojin staattiseksi." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Merkittiin, että kanava sisältää aikuisille tarkoitettua sisältöä." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Merkittiin, että kanava ei sisällä aikuisille tarkoitettua sisältöä." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "Merkitsi jäsenen pysyväksi." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Pysäytä toisto" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Keskitaso" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Keskikokoinen (oletus)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Jäsen" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Jäsenen {displayName} toiminnot" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Jäsenelle annettu porttikielto" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Jäsenen yhteys katkaistu" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Jäsen poistettu yhteisöstä" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Jäsenluettelot ovat tilapäisesti poissa käytöstä tässä yhteisössä" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Jäsen siirretty" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Jäsentä ei löydy" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Jäsenen roolit päivitetty" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Jäsenenä alkaen" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Jäsenen porttikielto poistettu" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Jäsenen tiedot päivitetty" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Jäsenet poistetaan, kun he ovat offline-tilassa, ellei heille ole annettu roolia." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Passiiviset jäsenet poistettu" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "Jäsenet, joilla ei ole {readMessageHistoryPermissionLabel} -käyttöoikeutta, voivat nähdä tämän päivämäärän jälkeen lähetetyt viestit." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Jäsenet, valittu" @@ -20077,8 +21149,10 @@ msgstr "Maininnat sinusta näkyvät täällä {recentMentionsRetentionDays} päi msgid "Mentions of you show up here for {retentionDays} days." msgstr "Maininnat sinusta näkyvät täällä {retentionDays} päivän ajan." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Vain maininnat" @@ -20104,7 +21178,7 @@ msgstr "viesti" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Viesti" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Viestin virheenkorjaus" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Viesti poistettu" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Kanavan {channelName} viestiluettelo" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Viesti kiinnitetty" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Viestin aika" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Viestin kiinnitys poistettu" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Viestit ja media" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Viestit poistettu" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Moderointi" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Tässä näkyvät moderointitoimet ja yhteisön muutokset." @@ -20915,16 +21989,51 @@ msgstr "Siirrä kohteeseen" msgid "Move to…" msgstr "Siirrä kohteeseen…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Siirretty kohteesta {oldChannel} kohteeseen {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Siirrettiin kanava kategoriasta {oldCategory} kategoriaan {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Siirrettiin kanava kategoriaan {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Siirsi kanavan kategoriaan {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "Siirrettiin rooli alemmas jäsenlistassa." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "Siirrettiin rooli alemmas rooliluettelossa." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Siirsi roolin sijalle {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "Siirrettiin rooli ylemmäs jäsenlistassa." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "Siirrettiin rooli ylemmäs rooliluettelossa." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Uusi viesti" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Uudet viestit" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "Ei viittauksia paikallisiin tiedostoihin" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Ei vielä lokeja" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "Syytä ei annettu" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "Syytä ei annettu." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Ei muunnosta" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Ei muunnosta" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "OAuth2-URL-muodostin" msgid "Objects" msgstr "Esineet" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Esineet" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Pois päältä" @@ -23523,6 +24636,21 @@ msgstr "Alkuperäisen viestin lataus epäonnistui" msgid "Original message was deleted" msgstr "Alkuperäinen viesti poistettiin" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Porttikiellon antoi alun perin {user} {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Porttikiellon antoi alun perin {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Porttikielto annettiin alun perin {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Keskeytetty vähennetyn liikkeen vuoksi. Ota käyttöön, jotta animoidu msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "Keskeytetty vähennetyn liikkeen vuoksi. Ota käyttöön, jotta GIF-kuvat jatkavat toistoa." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Kutsut tauotettu." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Poista tilisi ja kaikki siihen liittyvät tiedot pysyvästi. Tätä toim msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Poista pysyvästi lähettämäsi viestit yksityisviesteistä, ryhmäkeskusteluista ja yhteisöistä. Toiminto suoritetaan taustalla, ja saat yksityisviestin, kun se on valmis." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Käyttöoikeusasetus lisätty" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Käyttöoikeusasetus poistettu" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Käyttöoikeusasetus päivitetty" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Valmiina päivitykseen?" msgid "Real-time" msgstr "Reaaliaikainen" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Syy" @@ -26291,26 +27440,166 @@ msgstr "Rooli {oldLabel} poistettu." msgid "Removed roles." msgstr "Roolit poistettu." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "Poistettu AFK-kanava." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Poistettu avatar." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Kanava poistettiin kategoriasta." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Kanava poistettiin kategoriasta {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Poistettu chat-upotuksen tausta." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "Poistettu jäsenen yhteisöbanneri." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Poistettu yhteisön kuvake." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "Poistettu sisällön varoitusteksti." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Poistettu sisältövaroitus." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Poistettu mukautettu roolikuvake." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Poistettu mukautettu varoitusteksti." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Poistettu kuvaus {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Poistettu kutsutausta." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Poistettu linkki." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Poistettu jäsenen yhteisöprofiilin korostusväri." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Poistettu jäsenen yhteisöprofiilin avatar." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Poistettu jäsenen yhteisöprofiilin banneri." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Poistettu jäsenen yhteisöprofiilin esittelyteksti." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "Poistettu jäsenen yhteisöprofiilin pronominit." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Poistettu viestihistorian raja." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "Poistettu lempinimi {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "Poistettiin ohitus oikeuksilta {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "Poistettu rooli {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Poistettu roolin väri." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Poistettu roolin kuvake." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Sääntökanava poistettu." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "Järjestelmäkanava poistettu." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "Poistettu jäähy." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "Poistettu aihe {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Unicode-emoji poistettu." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Käyttäjärajoitus poistettu." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "Poistettu mukautettu URL-osoite {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Jäähy poistettu käyttäjältä {targetUserTag}" @@ -26381,6 +27670,11 @@ msgstr "Tarran nimeksi tuli {0}." msgid "Renamed the channel to {0}." msgstr "Kanavan nimeksi tuli {0}." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Yhteisön nimi muutettiin muodosta {oldName} muotoon {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Vaadi moderaattoreilta kaksivaiheinen todennus, ennen kuin he voivat ant msgid "Required" msgstr "Pakollinen" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "Vaadittu 2FA moderointitoiminnoille." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Palauta välistys" msgid "Reset the connection limit." msgstr "Yhteysrajoitus nollattiin." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "Nollattiin roolin sijainti jäsenluettelossa." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Tämän roolin mainitseminen rajoitettiin jäseniin, joilla on siihen oi msgid "Resubscribe" msgstr "Tilaa uudelleen" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Kutsut otettu uudelleen käyttöön." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Palaa sisäänkirjautumiseen" @@ -27330,6 +28639,11 @@ msgstr "Mitätöidäänkö tämä kutsu? Toimintoa ei voi kumota." msgid "Revoked {0}." msgstr "Kumottu {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "Poistettiin {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (oikea)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Tasattu oikealle" @@ -27408,7 +28724,7 @@ msgstr "Soittoääni" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Rooli" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Roolin väri" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Rooli luotu" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Rooli luotu" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Rooli poistettu" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "Roolin nimi on pakollinen" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Rooli päivitetty" @@ -28930,11 +30246,21 @@ msgstr "Istunnot" msgid "Set {fieldNode} to {0}." msgstr "{fieldNode} asetettiin arvoon {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Asetettu mukautettu roolikuvake." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Aseta mukautettu tila" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Määritettiin roolille paikka jäsenluettelossa." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "Roolin väriksi asetettiin <0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "Hidas tila asetettiin arvoon {0} {seconds, plural, one {sekunti} other {sekuntia}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Asetettiin hitaan tilan viiveeksi {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Aseta tila" msgid "Set the AFK channel to {0}." msgstr "Poissaolokanavaksi asetettiin {0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "Määritettiin AFK-kanavaksi {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "Poissaolon aikakatkaisu asetettiin arvoon {0} sekuntia." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "Äänenlaaduksi asetettiin {kbps} kbps." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "Kanavan tyypiksi asetettiin {0}." msgid "Set the connection limit to {0}." msgstr "Yhteysrajoitukseksi asetettiin {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "Asetettiin sisältövaroituksen tekstiksi {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "Asetettiin mukautetuksi varoitustekstiksi {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "Asetettiin kuvaukseksi {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "Kutsun taustakuvan tasaukseksi asetettiin {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "Asetettiin linkiksi {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "Asetettiin jäsenen yhteisöprofiilin korostusväriksi {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "Jäsenen yhteisöprofiilin esittelytekstiksi asetettiin {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "Asetti jäsenen yhteisöprofiilin pronominit muotoon {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "Asetettiin viestihistorian rajaksi {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "Asetettu lempinimeksi {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Määritä julkinen tuotenimi, teeman väri ja kuvatiedostot, jotka asiakasohjelmat näyttävät." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "Asetettiin roolin väriksi {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "Roolin kuvakkeeksi asetettiin {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "Säännöt-kanavaksi asetettiin {0}." msgid "Set the system channel to {0}." msgstr "Järjestelmäkanavaksi asetettiin {0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "Asetettiin järjestelmäkanavaksi {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "Asetettiin aiheeksi {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "Käyttäjärajoitukseksi asetettiin {0}." msgid "Set the vanity URL to {0}." msgstr "Mukautetuksi URL-osoitteeksi asetettiin {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "Asetettiin mukautettu URL-osoite muotoon {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "Puhealueeksi asetettiin {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "Puhealueeksi asetettiin automaattinen." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Näytä globaali profiilibannerisi tässä yhteisössä" msgid "Show your Visionary as a regular subscription instead" msgstr "Näytä Visionary sen sijaan tavallisena tilauksena" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Näytettiin tämän roolin jäsenet omassa osiossaan jäsenluettelossa." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Jokin meni pieleen hyvitystä käsiteltäessä. Ota yhteyttä tukeen, jos tämä toistuu." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Jokin meni pieleen aktiviteettilokia ladattaessa." @@ -31105,6 +32531,11 @@ msgstr "Aloita äänipuhelu" msgid "Start with computer" msgstr "Käynnistä tietokoneen mukana" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "Tämän roolin jäsenet alettiin näyttää erikseen." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "tarra" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "Tarraa ei voitu pakata riittävästi" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Tarra luotu" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Tarra poistettu" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Tarrapaikat täynnä" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Tarra päivitetty" @@ -31412,6 +32843,46 @@ msgstr "Lopeta striimin katselu" msgid "Stop." msgstr "Seis." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Tekstikanavien nimien joustava muotoilu ei ole enää sallittua." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Ei enää sallittu muiden kloonata tämän yhteisön emojeita." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Ei enää sallittu muiden kloonata tämän yhteisön tarroja." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Lopetettiin tämän roolin jäsenten näyttäminen erikseen." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Lopetettiin liittymisviestien piilottaminen järjestelmäkanavalla." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Lopetettiin yhteisön omistajan kruunun piilottaminen." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Lopetettiin 2FA:n vaatiminen moderointitoiminnoilta." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Esti jäsentä kuulemasta muita tässä yhteisössä." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Synkronoi kategorian kanssa" msgid "Syntax highlighting" msgstr "Syntaksikorostus" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "Järjestelmä" @@ -32449,6 +33922,16 @@ msgstr "Sovellus kaatui. Tarkistetaan päivityksiä, jotka voisivat korjata onge msgid "The app should now be signed in to your account." msgstr "Sovelluksen pitäisi nyt olla kirjautuneena tilillesi." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "Porttikielto oli jo rauennut {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "Porttikiellon oli määrä päättyä {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "Botti on lisätty kohteeseen <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "Työpöytäpäivitys on ladattu. Käynnistä {productName} uudelleen ase msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "Ladattu tiedosto tallennetaan tietokoneellesi. Asenna se tavallisella pakettienhallintaohjelmallasi." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "Emojin latasi {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "Tiedosto sisältää vahvistustunnuksen, jonka noudamme osoitteesta <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "Tiedosto, jota yrität lähettää, ylittää enimmäiskoon {maxSizeForm msgid "The following people can't be added to this group DM:" msgstr "Seuraavia henkilöitä ei voi lisätä tähän ryhmäkeskusteluun:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "Kutsun loi {user} {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "Kutsun loi {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "Kutsu luotiin {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "Kutsua ei koskaan käytetty." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "Kutsun oli määrä vanhentua {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "Kutsu asetettiin sallimaan rajoittamaton määrä käyttökertoja." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "Kutsun voimassaoloajaksi asetettiin {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "Kutsu asetettiin myöntämään väliaikainen jäsenyys." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "Kutsu asetettiin kestämään ikuisesti." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "Kieli, jota suurin osa yhteisöstäsi puhuu. Käytetään Löydä-osion tulosten suodattamiseen." @@ -32518,6 +34051,11 @@ msgstr "Linkki saattaa edelleen toimia. Yritä uudelleen hetken kuluttua." msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "Aikuisille tarkoitetun sisällön tarkistus peruttiin. Voit sulkea tämän välilehden ja yrittää uudelleen sovelluksesta." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "Jäsen ei ole enää väliaikainen." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "Uusi hinta on jo ajastettu alkamaan {effectiveDate}." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "Uusi äänikanava käyttää samoja käyttöoikeuksia, käyttäjärajoitusta ja bittinopeutta kuin <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "Käyttöoikeusasetus salli oikeudet {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "Käyttöoikeusasetus esti oikeudet {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "Etsimääsi sivua ei löydy tai se on siirretty." @@ -32565,6 +34113,11 @@ msgstr "Annettua redirect_uri-osoitetta ei ole rekisteröity tälle sovelluksell msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "redirect_uri-osoitteen on käytettävä HTTP- tai HTTPS-protokollaa." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "Rooli myönsi {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "Tarra ladattiin animoituna." msgid "The sticker was uploaded as static." msgstr "Tarra ladattiin staattisena." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "Tarran latasi {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "Järjestelmä antoi roolin {role} käyttäjälle {target}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "Järjestelmä poisti roolin {role} käyttäjältä {target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "Käyttäjänimi <0>{fluxerTag} on jo varattu. Jos jatkat, tunnistees msgid "The verification code is invalid or expired." msgstr "Vahvistuskoodi on virheellinen tai vanhentunut." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "Webhookin loi {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Tämä kortti ei vastaa laskutusmaatasi, joten sitä ei voi käyttää tähän paikalliseen valuuttaan. Käytä paikallista korttia tai palaa {productName}-sovellukseen ja valitse toinen maksutapa." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "Tässä kategoriassa on jo enimmäismäärä kanavia ({maxChannelsPerCategory})." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Seuraa moderaattorien toimia yhteisössä." @@ -33953,6 +35526,11 @@ msgstr "Siirretäänkö ryhmän omistajuus käyttäjälle {userName}?" msgid "Transfer ownership" msgstr "Siirrä omistajuus" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Siirrettiin yhteisön omistajuus käyttäjälle {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Ota suoratoiston yksityisyys käyttöön" msgid "Turn text smileys into emoji" msgstr "Muunna tekstihymiöt emojeiksi" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Poistettu aikuisille tarkoitettu sisältö käytöstä." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Poistettu hidas tila käytöstä." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "Poistettu sisältövaroitus käytöstä." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Poistettu irrotettu banneri käytöstä." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Kytki jäsenen mikrofonin pois päältä tässä yhteisössä." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Otettu aikuisille tarkoitettu sisältö käyttöön." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "Sisältövaroitus otettu käyttöön." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Otettu irrotettu banneri käyttöön." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "Kytki jäsenen mikrofonin takaisin päälle tässä yhteisössä." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Käyttöoikeuksien poistaminen käytöstä voi estää sovellusta toimimasta oikein." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "ukraina" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Aktiviteettilokin tietojen lataaminen epäonnistui" @@ -34859,6 +36482,7 @@ msgstr "Tuntematon kohde" msgid "unknown user" msgstr "tuntematon käyttäjä" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "tuntematon käyttäjä" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Käytössä vain tässä yhteisössä." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Vermont" msgid "Version" msgstr "Versio" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Erittäin korkea" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Webkamera" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Webhook luotu" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhook poistettu" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Webhookin nimi" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhook päivitetty" diff --git a/fluxer_app/src/features/i18n/locales/fr/messages.po b/fluxer_app/src/features/i18n/locales/fr/messages.po index 1064b3e56..cf2da6fe1 100644 --- a/fluxer_app/src/features/i18n/locales/fr/messages.po +++ b/fluxer_app/src/features/i18n/locales/fr/messages.po @@ -56,6 +56,31 @@ msgstr "{a} est en train d'écrire..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} et {c} sont en train d'écrire..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} a ajouté une permission spécifique pour {user} dans {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} a ajouté une permission spécifique pour @everyone dans {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} a ajouté une permission spécifique pour le rôle {role} dans {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} a ajouté un sticker." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} a ajouté un emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} a ajouté des permissions de salon pour {targetEntity} dans {channelNode}." @@ -64,35 +89,200 @@ msgstr "{actor} a ajouté des permissions de salon pour {targetEntity} dans {cha msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} a ajouté des permissions de salon pour {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} a ajouté le bot {target} en tant que membre temporaire." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} a ajouté le bot {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} a ajouté le bot {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} a ajouté l'emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} a ajouté l'emoji {namedTarget}." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} a ajouté le sticker {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} a ajouté le sticker {namedTarget}." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} a banni {target} pendant {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} a banni {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} a banni {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} a modifié le blocage empêchant {target} d'envoyer des messages, de réagir et de rejoindre les salons vocaux pour qu'il se termine le {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} a changé le surnom de {target} de {oldNick} en {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} a modifié les permissions spécifiques de la catégorie {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} a modifié les permissions spécifiques du salon {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} a modifié les permissions spécifiques du salon de lien {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} a modifié les permissions spécifiques du salon textuel {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} a modifié les permissions spécifiques du salon vocal {channel}." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} a changé l'URL personnalisée de {oldCode} à {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} a changé l'avatar de son profil dans la communauté." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} a changé la bannière de son profil dans la communauté." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} a modifié la bio de son profil dans la communauté en {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} a changé son surnom de {oldNick} en {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} a créé un webhook." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} a créé la catégorie {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} a créé le salon {channel} dans {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} a créé le salon {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} a créé le salon {namedTarget}." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} a créé l'invitation {code} pour {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} a créé l'invitation {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} a créé l'invitation {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} a créé le salon de lien {channel} dans {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} a créé le salon de lien {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} a créé le rôle {namedTarget}." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} a créé le rôle {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} a créé le salon textuel {channel} dans {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} a créé le salon textuel {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} a créé le salon vocal {channel} dans {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} a créé le salon vocal {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} a créé le webhook {name} dans {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} a créé le webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} a créé le webhook {namedTarget}." @@ -103,49 +293,209 @@ msgstr "{actor} a créé le webhook {namedTarget}." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} a supprimé {0} {bulkCount, plural, one {message} other {messages}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} a supprimé {count, plural, one {# message} other {# messages}} dans {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} a supprimé {count, plural, one {# message} other {# messages}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} a supprimé un message dans {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} a supprimé un message." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} a supprimé un message{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} a supprimé un sticker." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} a supprimé un webhook." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} a supprimé un emoji." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} a supprimé plusieurs messages{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} a supprimé des messages dans {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} a supprimé des messages." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} a supprimé la catégorie {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} a supprimé le salon {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} a supprimé le salon {namedTarget}." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} a supprimé l’emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} a supprimé l'emoji {namedTarget}." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} a supprimé l'invitation {code} pour {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} a supprimé l'invitation {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} a supprimé l'invitation {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} a supprimé le salon de lien {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} a supprimé le rôle {namedTarget}." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} a supprimé le rôle {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} a supprimé le sticker {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} a supprimé le sticker {namedTarget}." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} a supprimé le salon textuel {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} a supprimé le salon vocal {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} a supprimé le webhook {name} du salon {channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} a supprimé le webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} a supprimé le webhook {namedTarget}." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} a déconnecté {target} de {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} a déconnecté {target} du salon vocal." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} a déconnecté {targetMember} du salon vocal." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} s'est déconnecté de {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} s'est déconnecté du salon vocal." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} a donné le rôle {role} à {target}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} a expulsé {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} a expulsé {targetMember}." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} a de nouveau permis à {target} d’entendre les autres dans cette communauté." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} a effectué une modification que cette version de l'application ne peut pas afficher." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} a déplacé {target} de {oldChannel} vers {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} a déplacé {target} vers {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} a déplacé {target} vers un autre salon vocal." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} a déplacé {targetMember} vers {channelNode}." @@ -154,16 +504,68 @@ msgstr "{actor} a déplacé {targetMember} vers {channelNode}." msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} a déplacé {targetMember} vers un autre salon vocal." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} a quitté {oldChannel} pour rejoindre {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} a déplacé le rôle {role} plus bas dans la liste des membres." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} a déplacé le rôle {role} plus bas dans la liste des rôles." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} a déplacé le rôle {role} plus haut dans la liste des membres." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} a déplacé le rôle {role} plus haut dans la liste des rôles." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} a rejoint {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} a changé de salon vocal." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} a suspendu les invitations." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} a effectué une action d'audit sur {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} a épinglé un message dans {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} a épinglé un message." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} a épinglé un message{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} a retiré les membres inactifs." @@ -179,19 +581,249 @@ msgstr "{actor} a supprimé les permissions de salon pour {targetEntity} dans {c msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} a supprimé les permissions de salon pour {targetEntity}." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} a supprimé le surnom {nick} de {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} a supprimé la permission spécifique pour {user} de {channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} a supprimé la permission spécifique pour @everyone de {channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} a supprimé la permission spécifique pour le rôle {role} de {channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} a retiré le rôle {role} de {target}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} a levé la restriction temporaire de {target}." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} a supprimé l'URL personnalisée {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} a supprimé la couleur d'accentuation de son profil dans la communauté." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} a supprimé l'avatar de son profil dans la communauté." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} a supprimé la bannière de son profil dans la communauté." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} a supprimé la bio de son profil dans la communauté." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} a supprimé les pronoms de son profil dans la communauté." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} a supprimé son surnom {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} a renommé la catégorie {oldName} en {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} a renommé le salon {oldName} en {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} a renommé la communauté {oldName} en {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} a renommé l'emoji {oldEmoji} en {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} a renommé le salon de lien {oldName} en {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} a renommé le rôle {oldName} en {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} a renommé le sticker {oldName} en {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} a renommé le salon textuel {oldName} en {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} a renommé le salon vocal {oldName} en {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} a renommé le webhook {oldName} en {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} a réinitialisé la position dans la liste des membres pour le rôle {role}." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} a repris les invitations." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} a défini une position dans la liste des membres pour le rôle {role}." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} a défini le surnom de {target} sur {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} a défini l'URL personnalisée sur {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} a défini la couleur d'accentuation de son profil dans la communauté sur {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} a défini l'avatar de son profil dans la communauté." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} a défini la bannière de son profil dans la communauté." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} a défini la bio de son profil dans la communauté sur {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} a défini les pronoms de son profil dans la communauté sur {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} a défini son surnom sur {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} a empêché {target} d’entendre les autres dans cette communauté." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} a appliqué une restriction temporaire à {target} jusqu'au {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} a transféré la propriété de la communauté à {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} a réactivé le microphone de {target} dans cette communauté." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} a coupé le microphone de {target} dans cette communauté." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} a levé le bannissement de {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} a révoqué le bannissement de {targetMember}." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} a désépinglé un message dans {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} a désépinglé un message." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} a désépinglé un message{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} a mis à jour {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} a mis à jour {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} a mis à jour un sticker." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} a mis à jour un webhook." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} a mis à jour un emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} a mis à jour les permissions de salon pour {targetEntity} dans {channelNode}." @@ -204,35 +836,112 @@ msgstr "{actor} a mis à jour les permissions de salon pour {targetEntity}." msgid "{actor} updated roles for {targetMember}." msgstr "{actor} a mis à jour les rôles de {targetMember}." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} a mis à jour la catégorie {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} a mis à jour le salon {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} a mis à jour le salon {namedTarget}." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} a mis à jour les paramètres de la communauté." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} a mis à jour l'emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} a mis à jour l'emoji {namedTarget}." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} a mis à jour l'invitation {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} a mis à jour l'invitation {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} a mis à jour le salon de lien {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} a mis à jour la permission spécifique pour {user} dans {channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} a mis à jour la permission spécifique pour @everyone dans {channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} a mis à jour la permission spécifique pour le rôle {role} dans {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} a mis à jour le rôle {namedTarget}." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} a mis à jour le rôle {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} a mis à jour les rôles de {target}." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} a mis à jour le sticker {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} a mis à jour le sticker {namedTarget}." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} a mis à jour le salon textuel {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} a mis à jour le salon vocal {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} a mis à jour le webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} a mis à jour le webhook {namedTarget}." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} a mis à jour son profil de communauté." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# élément} other {# éléments}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# membre} other {# membres}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# permission supplémentaire} other {# permissions supplémentaires}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# communauté en commun} other {# communautés en commun}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {Afficher # appareil} other {Afficher # appareils}}" msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Déconnecter # appareil} other {Déconnecter # appareils}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {L'invitation était limitée à # utilisation.} other {L'invitation était limitée à # utilisations.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {L'invitation a été utilisée # fois.} other {L'invitation a été utilisée # fois.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "Salons {guildName}" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Activité" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Journal d’activité" @@ -2713,10 +3437,60 @@ msgstr "A ajouté {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "{length, plural, one {# référence à un fichier local ajoutée.} other {# références à des fichiers locaux ajoutées.}}" +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "A ajouté un arrière-plan d'aperçu d'invitation dans le chat." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Ajout d'une bannière de communauté." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Ajout d'une icône de communauté." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "Ajout d'un avertissement de contenu avec le texte {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Ajout d'un avertissement de contenu." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "A ajouté un avatar." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Ajout d'un arrière-plan d'invitation." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Rôles ajoutés." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Ajouté l'avatar du profil communautaire du membre." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Ajouté la bannière du profil communautaire du membre." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "A ajouté le rôle {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Les contrôles d'alignement ne sont disponibles que sur les écrans plus #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Tous les <0/>, à vie. Sans facturation ni renouvellement." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Toutes les actions" @@ -3001,10 +3775,12 @@ msgstr "Toutes les langues" msgid "All members" msgstr "Tous les membres" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "Toute la période" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Tous les utilisateurs" @@ -3197,6 +3973,16 @@ msgstr "A autorisé {0} et a supprimé l'autorisation pour {1}." msgid "Allowed {0}." msgstr "A autorisé {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "Autorisé {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "A autorisé tous les membres à mentionner ce rôle." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Appelants autorisés" @@ -3205,15 +3991,35 @@ msgstr "Appelants autorisés" msgid "Allowed everyone to mention this role." msgstr "Tout le monde a été autorisé à mentionner ce rôle." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Autorisé les noms de salons textuels flexibles." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Invitations autorisées" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "A autorisé les autres à cloner les emojis de cette communauté." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "A autorisé les autres à cloner les stickers de cette communauté." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Redirections autorisées" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Autorisé jusqu’à {count, plural, one {# connexion} other {# connexions}} par membre." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Bannir des membres" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Bannir des membres de la communauté, avec la possibilité de supprimer leurs messages récents." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Raison du bannissement" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Bloquer l'utilisateur" msgid "Blocked" msgstr "Bloqué" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "A empêché le membre d'envoyer des messages, de réagir et de rejoindre les salons vocaux jusqu'au {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Bot" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Bot ajouté" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Catégorie supprimée" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Catégorie pleine" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Centrer" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Centré" @@ -6298,11 +7116,183 @@ msgstr "Changer votre nom d'utilisateur" msgid "Changed nickname from {0} to {1}." msgstr "A changé le surnom de {0} en {1}." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Modification du mode lent de {oldDuration} à {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "A remplacé le salon AFK {oldChannel} par {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "A modifié le délai d'attente AFK de {oldDuration} à {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "Qualité audio modifiée de {oldKbps} kbps à {newKbps} kbps." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "A modifié l'avatar." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Le débit binaire a été modifié à {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "A modifié le blocage de l'envoi de messages, des réactions et de la participation vocale pour qu'il se termine le {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Arrière-plan de l'aperçu d'invitation dans le chat modifié." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Bannière de la communauté modifiée." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "A modifié l'icône de la communauté." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "A modifié les connexions par membre de {oldCount} à {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "Avertissement de contenu modifié de {oldText} à {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Icône de rôle personnalisée modifiée." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Avertissement personnalisé modifié de {oldText} à {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "A modifié le paramètre de notification par défaut de {oldSetting} à {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "A modifié la description de {oldText} à {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "A modifié le filtre de contenu explicite de {oldFilter} à {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Alignement de l'arrière-plan d'invitation modifié de {oldAlignment} à {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Arrière-plan d'invitation modifié." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "A modifié le lien de {oldUrl} à {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "A modifié l'avatar du profil communautaire du membre." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "A modifié la bannière du profil communautaire du membre." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "A modifié la bio du profil communautaire du membre en {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "A modifié le seuil d'historique des messages de {oldDate} à {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "A changé le nom de {oldName} en {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "A changé le surnom de {oldNick} en {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Couleur du rôle modifiée de {oldColor} à {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "A remplacé l'icône du rôle de {oldEmoji} par {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "A remplacé le salon système {oldChannel} par {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "A modifié le sujet de {oldText} à {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "A modifié la limite d'utilisateurs de {oldCount} à {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "A modifié l'URL personnalisée de {oldCode} à {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "A modifié le niveau de vérification de {oldLevel} à {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "A modifié la région vocale de {oldRegion} à {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "salon" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Salon ou catégorie" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Permissions spécifiques du salon ajoutées" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Permissions spécifiques du salon supprimées" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Permissions spécifiques du salon mises à jour" @@ -7815,7 +8805,7 @@ msgstr "Les communautés de plus de 250 personnes sont automatiquement réglées #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Supprimer vos messages dans cette conversation ?" msgid "Deleted" msgstr "Supprimé" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "A supprimé {duration} de l'historique récent des messages du membre." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Texte supprimé" msgid "Deleted your messages." msgstr "Vos messages ont été supprimés." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "catégorie-supprimée" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "salon-supprimé" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "rôle-supprimé" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "A refusé {0} et a annulé le refus pour {1}." msgid "Denied {0}." msgstr "A refusé {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "Refusé {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Contenus intégrés réaffichés" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Clonage d’emojis activé" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Emoji créé" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Emoji supprimé" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Tous les emplacements d’emojis sont occupés" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Emoji mis à jour" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Filtrer par date de création du compte" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Filtrer par action" @@ -14572,18 +15587,22 @@ msgstr "Filtrer par rôles" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Filtrer par utilisateur" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Filtrer tout le monde" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Filtrer les membres sans rôle" @@ -15890,6 +16909,11 @@ msgstr "A accordé {0} et révoqué {1}." msgid "Granted {0}." msgstr "A accordé {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "A accordé {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Salut, {username} ! Nous espérons que vous apprécierez votre séjour." msgid "Hey, {username}, welcome aboard!" msgstr "Salut {username}, bienvenue à bord !" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Messages de bienvenue masqués dans le salon système." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Couronne du propriétaire de la communauté masquée." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Masquer votre caméra ?" msgid "Hide your own screen share?" msgstr "Masquer votre partage d'écran ?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Élevé" @@ -17688,7 +18724,7 @@ msgstr "Inviter" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "Le code d'invitation est {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Invitation créée" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Invitation supprimée" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Invitation non disponible" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Invitation mise à jour" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (gauche)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Aligné à gauche" @@ -18745,6 +19783,11 @@ msgstr "Les lecteurs d'écran annoncent les nouveaux messages dès leur arrivée msgid "Let the community self-moderate" msgstr "Laisser la communauté s'auto-modérer" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "A de nouveau autorisé le membre à entendre les autres dans cette communauté." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Permet au CSS personnalisé de révéler les zones de fenêtre transparentes après le redémarrage de l'application de bureau." @@ -18815,6 +19858,16 @@ msgstr "Aimé." msgid "Likes: <0>{countLabel}" msgstr "J’aime : <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "A limité les mentions de ce rôle aux membres autorisés à mentionner n'importe quel rôle." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Limité le salon à {count, plural, one {# utilisateur} other {# utilisateurs}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Louisiane" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Faible" @@ -19204,6 +20259,11 @@ msgstr "macOS (par défaut)" msgid "macOS permissions" msgstr "Autorisations macOS" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "A fait hériter le salon de son paramètre de contenu pour adultes." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "A marqué l’emoji comme animé." msgid "Marked emoji as static." msgstr "A marqué l’emoji comme statique." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "A marqué le salon comme contenant du contenu pour adultes." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "A marqué le salon comme ne contenant pas de contenu pour adultes." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "A marqué le membre comme permanent." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Arrêter la lecture" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Moyen" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Taille moyenne (par défaut)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Membre" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Actions pour le membre {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Membre banni" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Membre déconnecté" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Membre expulsé" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Les listes de membres sont temporairement indisponibles dans cette communauté" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Membre déplacé" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Membre introuvable" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Rôles du membre mis à jour" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Membre depuis" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Bannissement du membre levé" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Membre mis à jour" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Les membres sont retirés de la communauté lorsqu’ils passent hors ligne, sauf si un rôle leur est attribué." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Membres supprimés" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "Les membres sans la permission {readMessageHistoryPermissionLabel} peuvent consulter les messages envoyés après cette date." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Membres, sélectionnés" @@ -20077,8 +21149,10 @@ msgstr "Les messages qui vous mentionnent apparaissent ici pendant {recentMentio msgid "Mentions of you show up here for {retentionDays} days." msgstr "Les messages qui vous mentionnent apparaissent ici pendant {retentionDays} jours." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Mentions uniquement" @@ -20104,7 +21178,7 @@ msgstr "message" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Message" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Déboguer le message" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Message supprimé" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Liste des messages pour {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Message épinglé" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Heure du message" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Message désépinglé" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Messages et médias" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Messages supprimés" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Modération" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Les actions de modération et les modifications de la communauté apparaîtront ici." @@ -20915,16 +21989,51 @@ msgstr "Déplacer vers" msgid "Move to…" msgstr "Déplacer vers…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Déplacé de {oldChannel} vers {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "A déplacé le salon de la catégorie {oldCategory} vers la catégorie {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "A déplacé le salon dans la catégorie {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "A déplacé le salon vers la catégorie {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "A déplacé le rôle plus bas dans la liste des membres." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "A déplacé le rôle plus bas dans la liste des rôles." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "A déplacé le rôle à la position {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "A déplacé le rôle plus haut dans la liste des membres." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "A déplacé le rôle plus haut dans la liste des rôles." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Nouveau message" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Nouveaux messages" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "Aucun fichier local référencé" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Aucun journal pour l'instant" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "Aucune raison fournie" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "Aucune raison n'a été fournie." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Sans conversion" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Sans conversion" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "Générateur d'URL OAuth2" msgid "Objects" msgstr "Objets" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Objets" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Désactivé" @@ -23523,6 +24636,21 @@ msgstr "Échec du chargement du message d'origine" msgid "Original message was deleted" msgstr "Le message original a été supprimé" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Banni à l'origine par {user} le {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Banni à l'origine par {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Banni à l'origine le {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Lecture mise en pause par la réduction des animations. Activez cette op msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "Lecture mise en pause par la réduction des animations. Activez cette option pour continuer à lire les GIF." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Invitations suspendues." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Supprimer définitivement votre compte et toutes les données associées msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Supprimez définitivement vos messages dans les conversations privées, les conversations de groupe et les communautés. L’opération s’exécute en arrière-plan. Vous recevrez un message privé une fois qu’elle sera terminée." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Permission spécifique ajoutée" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Permission spécifique supprimée" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Permission spécifique modifiée" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Prêt à passer à la version supérieure ?" msgid "Real-time" msgstr "Temps réel" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Raison" @@ -26291,26 +27440,166 @@ msgstr "A retiré le rôle {oldLabel}." msgid "Removed roles." msgstr "A retiré les rôles." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "A effacé le choix du salon AFK." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "A supprimé l'avatar." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "A retiré le salon de sa catégorie." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "A retiré le salon de la catégorie {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "A supprimé l'arrière-plan de l'aperçu d'invitation dans le chat." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "A supprimé la bannière du profil." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Supprimé l'icône de la communauté." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "Supprimé le texte d'avertissement de contenu." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Supprimé l'avertissement de contenu." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Supprimé l'icône personnalisée du rôle." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Supprimé le texte d'avertissement personnalisé." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Supprimé la description {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Supprimé l'arrière-plan d'invitation." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Supprimé le lien." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Supprimé la couleur d'accentuation du profil communautaire du membre." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "A supprimé l'avatar du profil communautaire du membre." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Supprimé la bannière du profil communautaire du membre." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Supprimé la bio du profil communautaire du membre." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "A supprimé les pronoms du profil communautaire du membre." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Supprimé le seuil d'historique des messages." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "Supprimé le surnom {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "A supprimé les permissions spécifiques pour {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "A retiré le rôle {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Supprimé la couleur du rôle." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Supprimé l'icône du rôle." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "A effacé le choix du salon des règles." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "A effacé le choix du salon système." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "A levé la restriction temporaire." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "A supprimé le sujet {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "A supprimé l’emoji Unicode." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "A supprimé la limite d'utilisateurs." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "Supprimé l'URL personnalisée {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "A levé la restriction temporaire de {targetUserTag}" @@ -26381,6 +27670,11 @@ msgstr "A renommé le sticker en {0}." msgid "Renamed the channel to {0}." msgstr "A renommé le salon en {0}." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "A renommé la communauté {oldName} en {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Exiger l’authentification à deux facteurs pour les modérateurs avant msgid "Required" msgstr "Obligatoire" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "2FA requis pour les actions de modération." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Réinitialiser l'espacement" msgid "Reset the connection limit." msgstr "A réinitialisé la limite de connexions." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "A réinitialisé la position dans la liste des membres pour le rôle." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Les mentions de ce rôle ont été limitées aux membres disposant de la msgid "Resubscribe" msgstr "Se réabonner" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Invitations rétablies." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Retour à la connexion" @@ -27330,6 +28639,11 @@ msgstr "Révoquer cette invitation ? Cette action est irréversible." msgid "Revoked {0}." msgstr "A révoqué {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "A révoqué {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (droite)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Aligné à droite" @@ -27408,7 +28724,7 @@ msgstr "Sonnerie" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Rôle" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Couleur du rôle" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Rôle créé" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Rôle créé" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Rôle supprimé" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "Le nom du rôle est obligatoire" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Rôle mis à jour" @@ -28930,11 +30246,21 @@ msgstr "Sessions" msgid "Set {fieldNode} to {0}." msgstr "A défini {fieldNode} sur {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "A défini une icône de rôle personnalisée." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Définir un statut personnalisé" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "A défini une position dans la liste des membres pour ce rôle." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "A défini la couleur du rôle sur <0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "A réglé le mode lent sur {0} {seconds, plural, one {seconde} other {secondes}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "A défini le mode lent sur {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Définir le statut" msgid "Set the AFK channel to {0}." msgstr "A choisi {0} comme salon AFK." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "A défini le salon AFK sur {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "A fixé le délai d’inactivité en secondes à {0}." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "A défini la qualité audio sur {kbps} kbps." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "A défini le type de salon sur {0}." msgid "Set the connection limit to {0}." msgstr "A fixé la limite de connexions à {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "A défini le texte de l'avertissement de contenu sur {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "A défini le texte d'avertissement personnalisé sur {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "A défini la description sur {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "A défini l’alignement de l’image d’arrière-plan de l’invitation sur {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "A défini le lien sur {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "A défini la couleur d'accentuation du profil communautaire du membre sur {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "A défini la bio du profil communautaire du membre sur {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "A défini les pronoms du profil communautaire du membre sur {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "A défini le seuil d'historique des messages à {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "A défini le surnom sur {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Définissez le nom public du produit, la couleur du thème et les ressources d'image que les clients affichent." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "A défini la couleur du rôle sur {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "A défini l'icône du rôle sur {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "A choisi {0} comme salon des règles." msgid "Set the system channel to {0}." msgstr "A choisi {0} comme salon système." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "A défini le salon système sur {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "A défini le sujet sur {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "A fixé la limite d’utilisateurs à {0}." msgid "Set the vanity URL to {0}." msgstr "A défini l'URL personnalisée sur {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "A défini l'URL personnalisée sur {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "A défini la région vocale sur {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "A défini la région vocale sur automatique." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Afficher votre bannière de profil global dans cette communauté" msgid "Show your Visionary as a regular subscription instead" msgstr "Afficher Visionary comme un abonnement classique" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "A affiché les membres ayant ce rôle dans leur propre section de la liste des membres." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Un problème est survenu lors de l’émission de votre remboursement. Contactez l’assistance si cela se reproduit." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Une erreur s’est produite lors du chargement du journal d’activité." @@ -31105,6 +32531,11 @@ msgstr "Lancer un appel vocal" msgid "Start with computer" msgstr "Démarrer avec l'ordinateur" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "A commencé à afficher séparément les membres ayant ce rôle." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "sticker" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "Impossible de compresser suffisamment le sticker" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Sticker créé" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Sticker supprimé" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Tous les emplacements de stickers sont occupés" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Sticker mis à jour" @@ -31412,6 +32843,46 @@ msgstr "Arrêter de regarder la diffusion" msgid "Stop." msgstr "Arrêter." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Arrêté d'autoriser les noms de salons textuels flexibles." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "A cessé d'autoriser les autres à cloner les emojis de cette communauté." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "A cessé d'autoriser les autres à cloner les stickers de cette communauté." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Arrêté d'afficher séparément les membres ayant ce rôle." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Arrêté de masquer les messages de bienvenue dans le salon système." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Arrêté de masquer la couronne du propriétaire de la communauté." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Arrêté d'exiger la 2FA pour les actions de modération." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "A empêché le membre d'entendre les autres dans cette communauté." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Synchroniser avec la catégorie" msgid "Syntax highlighting" msgstr "Coloration syntaxique" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "Système" @@ -32449,6 +33922,16 @@ msgstr "L'application a planté. Nous recherchons des mises à jour qui pourraie msgid "The app should now be signed in to your account." msgstr "L'application devrait maintenant être connectée à votre compte." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "Le bannissement avait déjà expiré le {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "Le bannissement devait expirer le {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "Le bot a été ajouté à <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "La mise à jour de la version pour ordinateur a été téléchargée. Re msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "Le fichier téléchargé est enregistré sur votre ordinateur. Installez-le avec votre gestionnaire de paquets habituel." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "L'emoji a été mis en ligne par {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "Le fichier contient le jeton de vérification que nous allons récupérer depuis <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "Le fichier que vous essayez d'envoyer dépasse la taille maximale autori msgid "The following people can't be added to this group DM:" msgstr "Les personnes suivantes ne peuvent pas être ajoutées à cette conversation de groupe :" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "L'invitation a été créée par {user} le {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "L'invitation a été créée par {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "L'invitation a été créée le {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "L'invitation n'a jamais été utilisée." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "L'invitation devait expirer le {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "L'invitation a été configurée pour autoriser un nombre illimité d'utilisations." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "L'invitation a été configurée pour expirer après {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "L’invitation a été configurée pour accorder une adhésion temporaire." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "L'invitation a été configurée pour ne jamais expirer." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "La langue la plus parlée dans votre communauté. Elle sert à filtrer les résultats de Découverte." @@ -32518,6 +34051,11 @@ msgstr "Le lien pourrait encore fonctionner. Réessayez dans un instant." msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "La vérification d’accès aux contenus pour adultes a été annulée. Vous pouvez fermer cet onglet et réessayer depuis l’application." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "Le membre n'est plus temporaire." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "Le nouveau prix est déjà prévu pour le {effectiveDate}." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "Le nouveau salon vocal réutilisera les permissions, la limite d'utilisateurs et le débit binaire de <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "La permission spécifique autorisait {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "La permission spécifique refusait {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "La page que vous recherchez n'existe pas ou a été déplacée." @@ -32565,6 +34113,11 @@ msgstr "L'URI de redirection fournie n'est pas enregistrée pour cette applicati msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "L'URI de redirection fournie doit utiliser HTTP ou HTTPS." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "Le rôle accordait {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "Le sticker a été importé en tant qu'animé." msgid "The sticker was uploaded as static." msgstr "Le sticker a été importé en tant qu'image statique." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "Le sticker a été mis en ligne par {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "Le système a donné le rôle {role} à {target}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "Le système a retiré le rôle {role} de {target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "Le nom d'utilisateur <0>{fluxerTag} est déjà pris. Si vous continu msgid "The verification code is invalid or expired." msgstr "Le code de vérification est invalide ou a expiré." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "Le webhook a été créé par {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Cette carte n’a pas été émise dans votre pays de facturation et ne permet donc pas de payer dans cette devise locale. Utilisez une carte locale ou revenez dans {productName} et choisissez un autre mode de paiement." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "Cette catégorie contient déjà le nombre maximal de {maxChannelsPerCategory} salons." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Suivre les actions des modérateurs dans toute la communauté." @@ -33953,6 +35526,11 @@ msgstr "Transférer la propriété du groupe à {userName} ?" msgid "Transfer ownership" msgstr "Transférer la propriété" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Propriété de la communauté transférée à {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Activer la confidentialité de la diffusion" msgid "Turn text smileys into emoji" msgstr "Activer la conversion des émoticônes en emojis" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Contenu pour adultes désactivé." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Désactivé le mode lent." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "Avertissement de contenu désactivé." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Désactivé la bannière détachée." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "A coupé le microphone du membre dans cette communauté." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Contenu pour adultes activé." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "Avertissement de contenu activé." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Bannière détachée activée." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "A réactivé le microphone du membre dans cette communauté." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Désactiver des portées peut empêcher l’application de fonctionner correctement." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "Ukrainien" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Impossible de charger l’historique des activités" @@ -34859,6 +36482,7 @@ msgstr "Cible inconnue" msgid "unknown user" msgstr "utilisateur inconnu" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "utilisateur inconnu" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Utilisé uniquement dans cette communauté." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Vermont" msgid "Version" msgstr "Version" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Très élevé" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Webcam" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Webhook créé" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhook supprimé" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Nom du webhook" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhook mis à jour" diff --git a/fluxer_app/src/features/i18n/locales/he/messages.po b/fluxer_app/src/features/i18n/locales/he/messages.po index 5b1c67b88..689e1cfbb 100644 --- a/fluxer_app/src/features/i18n/locales/he/messages.po +++ b/fluxer_app/src/features/i18n/locales/he/messages.po @@ -56,6 +56,31 @@ msgstr "{a} מקליד/ה..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} ו-{c} מקלידים..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} הוסיף עקיפת הרשאות עבור {user} ב-{channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} הוסיף עקיפת הרשאות עבור @everyone ב-{channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} הוסיף עקיפת הרשאות עבור התפקיד {role} ב-{channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} הוסיף מדבקה." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} הוסיף אימוג'י." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} הוסיף/ה הרשאות ערוץ עבור {targetEntity} ב-{channelNode}." @@ -64,35 +89,200 @@ msgstr "{actor} הוסיף/ה הרשאות ערוץ עבור {targetEntity} ב-{ msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} הוסיף/ה הרשאות ערוץ עבור {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} הוסיף את הבוט {target} כחבר זמני." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} הוסיף את הבוט {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} הוסיף/ה את הבוט {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} הוסיף את האימוג'י {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} הוסיף/ה את האימוג'י {namedTarget}." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} הוסיף את המדבקה {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} הוסיף/ה את המדבקה {namedTarget}." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} חסם את {target} למשך {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} חסם את {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} חסם/ה את {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} שינה את החסימה של {target} על שליחת הודעות, תגובות והצטרפות לערוצי קול כך שתסתיים בתאריך {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} שינה את הכינוי של {target} מ-{oldNick} ל-{newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} שינה את עקיפות ההרשאות של הקטגוריה {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} שינה את עקיפות ההרשאות של הערוץ {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} שינה את עקיפות ההרשאות של ערוץ הקישור {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} שינה את עקיפות ההרשאות של ערוץ הטקסט {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} שינה את עקיפות ההרשאות של ערוץ הקול {channel}." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} שינה את כתובת ה-URL המותאמת אישית מ- {oldCode} ל- {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} שינה את תמונת הפרופיל הקהילתי שלו." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} שינה את הבאנר של הפרופיל הקהילתי שלו." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} שינה את הביוגרפיה של הפרופיל הקהילתי שלו ל-{text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} שינה את הכינוי שלו מ-{oldNick} ל-{newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} יצר webhook." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} יצר את הקטגוריה {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} יצר את הערוץ {channel} בתוך {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} יצר את הערוץ {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} יצר/ה את הערוץ {namedTarget}." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} יצר את ההזמנה {code} עבור {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} יצר את ההזמנה {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} יצר/ה את ההזמנה {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} יצר את ערוץ הקישור {channel} בתוך {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} יצר את ערוץ הקישור {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} יצר/ה את התפקיד {namedTarget}." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} יצר את התפקיד {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} יצר את ערוץ הטקסט {channel} בתוך {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} יצר את ערוץ הטקסט {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} יצר את ערוץ הקול {channel} בתוך {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} יצר את ערוץ הקול {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} יצר את ה-webhook {name} בערוץ {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} יצר את ה-webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} יצר/ה את ה-webhook {namedTarget}." @@ -103,49 +293,209 @@ msgstr "{actor} יצר/ה את ה-webhook {namedTarget}." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} מחק/ה {0} {bulkCount, plural, one {הודעה} other {הודעות}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} מחק {count, plural, one {הודעה אחת} other {# הודעות}} ב-{channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} מחק {count, plural, one {הודעה אחת} other {# הודעות}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} מחק הודעה ב-{channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} מחק הודעה." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} מחק/ה הודעה{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} מחק מדבקה." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} מחק webhook." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} מחק אימוג'י." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} מחק/ה מספר הודעות{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} מחק כמה הודעות ב-{channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} מחק כמה הודעות." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} מחק את הקטגוריה {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} מחק את הערוץ {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} מחק/ה את הערוץ {namedTarget}." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} מחק את האימוג'י {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} מחק/ה את האימוג'י {namedTarget}." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} מחק את ההזמנה {code} עבור {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} מחק את ההזמנה {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} מחק/ה את ההזמנה {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} מחק את ערוץ הקישור {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} מחק/ה את התפקיד {namedTarget}." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} מחק את התפקיד {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} מחק את המדבקה {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} מחק/ה את המדבקה {namedTarget}." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} מחק את ערוץ הטקסט {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} מחק את ערוץ הקול {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} מחק את ה-webhook {name} מ-{channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} מחק את ה-webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} מחק/ה את ה-webhook {namedTarget}." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} ניתק את {target} מ- {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} ניתק את {target} מהשיחה." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} ניתק/ה את {targetMember} מהערוץ הקולי." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} התנתק מ-{channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} התנתק מהשיחה." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} נתן ל-{target} את התפקיד {role}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} הוציא את {target} מהקהילה." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} הוציא/ה את {targetMember}." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} איפשר ל-{target} לשמוע שוב אחרים בקהילה זו." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} ביצע שינוי שגרסה זו של האפליקציה אינה יכולה להציג." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} העביר את {target} מ- {oldChannel} אל {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} העביר את {target} אל {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} העביר את {target} לערוץ קולי אחר." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} העביר/ה את {targetMember} אל {channelNode}." @@ -154,16 +504,68 @@ msgstr "{actor} העביר/ה את {targetMember} אל {channelNode}." msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} העביר/ה את {targetMember} לערוץ קולי אחר." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} עבר מ-{oldChannel} אל {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} הזיז את התפקיד {role} למטה ברשימת החברים." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} הזיז את התפקיד {role} למטה ברשימת התפקידים." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} העביר את התפקיד {role} למעלה ברשימת החברים." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} העלה את התפקיד {role} ברשימת התפקידים." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} עבר אל {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} עבר לערוץ קולי אחר." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} השהה את ההזמנות." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} ביצע/ה פעולת ביקורת על {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} הצמיד הודעה ב-{channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} הצמיד הודעה." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} הצמיד/ה הודעה{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} הסיר/ה חברים לא פעילים." @@ -179,19 +581,249 @@ msgstr "{actor} הסיר/ה הרשאות ערוץ עבור {targetEntity} ב-{ch msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} הסיר/ה הרשאות ערוץ עבור {targetEntity}." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} הסיר את הכינוי {nick} מ-{target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} הסיר את עקיפת ההרשאות עבור {user} מ-{channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} הסיר את עקיפת ההרשאות עבור @everyone מ-{channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} הסיר את עקיפת ההרשאות עבור התפקיד {role} מ-{channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} הסיר את התפקיד {role} מ-{target}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} הסיר את פסק הזמן של {target}." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} הסיר את כתובת ה-URL המותאמת אישית {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} הסיר את צבע ההדגשה של הפרופיל הקהילתי שלו." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} הסיר את תמונת הפרופיל הקהילתי שלו." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} הסיר את הבאנר של הפרופיל הקהילתי שלו." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} הסיר את הביוגרפיה של הפרופיל הקהילתי שלו." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} הסיר את כינויי הגוף של הפרופיל הקהילתי שלו." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} הסיר את הכינוי שלו {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} שינה את שם הקטגוריה {oldName} ל-{newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} שינה את שם הערוץ {oldName} ל-{newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} שינה את שם הקהילה מ-{oldName} ל-{newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} שינה את שם האימוג'י מ-{oldEmoji} ל-{newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} שינה את שם ערוץ הקישור מ-{oldName} ל-{newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} שינה את שם התפקיד {oldName} ל-{newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} שינה את שם המדבקה {oldName} ל-{newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} שינה את שם ערוץ הטקסט {oldName} ל-{newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} שינה את שם ערוץ הקול {oldName} ל-{newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} שינה את שם ה-webhook מ-{oldName} ל-{newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} איפס את מיקום התפקיד {role} ברשימת החברים." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} חידש את ההזמנות." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} קבע מיקום ברשימת חברים עבור התפקיד {role}." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} שינה את הכינוי של {target} ל-{nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} הגדיר את כתובת ה-URL המותאמת אישית ל-{code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} הגדיר את צבע ההדגשה של הפרופיל הקהילתי שלו ל-{color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} הגדיר את תמונת הפרופיל הקהילתי שלו." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} הגדיר את הבאנר של הפרופיל הקהילתי שלו." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} הגדיר את הביוגרפיה של הפרופיל הקהילתי שלו ל-{text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} הגדיר את כינויי הגוף של הפרופיל הקהילתי שלו ל-{text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} שינה את הכינוי שלו ל-{nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} מנע מ-{target} לשמוע אחרים בקהילה זו." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} הטיל פסק זמן על {target} עד {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} העביר את הבעלות על הקהילה ל-{user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} הפעיל מחדש את המיקרופון של {target} בקהילה זו." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} כיבה את המיקרופון של {target} בקהילה זו." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} ביטל את החסימה של {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} הסיר/ה את החסימה מ-{targetMember}." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} ביטל את ההצמדה של הודעה ב-{channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} ביטל את ההצמדה של הודעה." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} ביטל/ה את הצמדת ההודעה{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} עדכן את {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} עדכן/ה את {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} עדכן מדבקה." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} עדכן webhook." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} עדכן אימוג'י." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} עדכן/ה הרשאות ערוץ עבור {targetEntity} ב-{channelNode}." @@ -204,35 +836,112 @@ msgstr "{actor} עדכן/ה הרשאות ערוץ עבור {targetEntity}." msgid "{actor} updated roles for {targetMember}." msgstr "{actor} עדכן/ה תפקידים עבור {targetMember}." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} עדכן את הקטגוריה {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} עדכן את הערוץ {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} עדכן/ה את הערוץ {namedTarget}." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} עדכן/ה את הגדרות הקהילה." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} עדכן את האימוג'י {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} עדכן/ה את האימוג'י {namedTarget}." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} עדכן את ההזמנה {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} עדכן/ה את ההזמנה {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} עדכן את ערוץ הקישור {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} עדכן את עקיפת ההרשאות עבור {user} ב-{channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} עדכן את עקיפת ההרשאות עבור @everyone ב-{channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} עדכן את עקיפת ההרשאות עבור התפקיד {role} ב-{channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} עדכן/ה את התפקיד {namedTarget}." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} עדכן את התפקיד {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} עדכן את התפקידים של {target}." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} עדכן את המדבקה {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} עדכן/ה את המדבקה {namedTarget}." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} עדכן את ערוץ הטקסט {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} עדכן את ערוץ הקול {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} עדכן את ה-webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} עדכן/ה את ה-webhook {namedTarget}." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} עדכן את הפרופיל הקהילתי שלו." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# פריט} other {# פריטים}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# חבר} other {# חברים}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# הרשאה נוספת} other {# הרשאות נוספות}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# קהילה משותפת} other {# קהילות משותפות}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {הצג מכשיר אחד} other {הצג # מכשי msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {התנתק ממכשיר אחד} other {התנתק מ-# מכשירים}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {ההזמנה הוגבלה לשימוש אחד.} other {ההזמנה הוגבלה ל-# שימושים.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {נעשה שימוש בהזמנה # פעם.} other {נעשה שימוש בהזמנה # פעמים.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "ערוצי {guildName}" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "פעילות" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "יומן פעילות" @@ -2713,10 +3437,60 @@ msgstr "נוסף {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "נוספו {length, plural, one {# הפניה לקובץ מקומי} other {# הפניות לקבצים מקומיים}}." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "הוספת רקע להטמעת צ'אט." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "נוסף באנר לקהילה." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "נוסף אייקון לקהילה." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "נוספה אזהרת תוכן עם הטקסט {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "נוספה אזהרת תוכן." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "הוספת תמונת פרופיל." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "הוספת רקע להזמנה." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "נוספו תפקידים." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "הוספת תמונת הפרופיל הקהילתי של החבר." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "הוספת הבאנר של הפרופיל הקהילתי של החבר." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "הוספת התפקיד {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "פקדי יישור זמינים רק במסכים רחבים יותר" #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "כל <0/>, לנצח. בלי חיובים, בלי חידושים." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "כל הפעולות" @@ -3001,10 +3775,12 @@ msgstr "כל השפות" msgid "All members" msgstr "כל החברים" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "כל הזמנים" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "כל המשתמשים" @@ -3197,6 +3973,16 @@ msgstr "ניתנה הרשאת {0} והוסרה הרשאת {1}." msgid "Allowed {0}." msgstr "ניתנה הרשאת {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "הותרו {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "הותר לכל החברים לאזכר תפקיד זה." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "מתקשרים מורשים" @@ -3205,15 +3991,35 @@ msgstr "מתקשרים מורשים" msgid "Allowed everyone to mention this role." msgstr "לכולם ניתנה הרשאה לאזכר את התפקיד הזה." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "הותרו שמות גמישים לערוצי טקסט." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "הזמנות מותרות" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "הותר לאחרים לשכפל את האימוג'ים של הקהילה הזו." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "הותר לאחרים לשכפל את המדבקות של הקהילה הזו." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "הפניות מותרות" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "הותרו עד {count, plural, one {# חיבור} other {# חיבורים}} לכל חבר." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "חסימת חברים" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "חסום חברים מהקהילה, עם אפשרות למחוק את ההודעות האחרונות שלהם." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "סיבת החסימה" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "חסימת משתמש" msgid "Blocked" msgstr "חסומים" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "חסימת החבר מלשלוח הודעות, להגיב ולהצטרף לערוצי קול עד {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "בוט" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "הבוט נוסף" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "הקטגוריה נמחקה" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "הקטגוריה מלאה" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "מרכז" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "ממורכז" @@ -6298,11 +7116,183 @@ msgstr "שינוי שם המשתמש שלך" msgid "Changed nickname from {0} to {1}." msgstr "הכינוי שונה מ-{0} ל-{1}." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "שינוי המצב האיטי מ-{oldDuration} ל-{newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "שינוי ערוץ ה-AFK מ-{oldChannel} ל-{newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "שינוי זמן חוסר הפעילות מ-{oldDuration} ל-{newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "שינוי איכות השמע מ-{oldKbps} קילו-ביט לשנייה ל-{newKbps} קילו-ביט לשנייה." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "שינוי תמונת הפרופיל." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "קצב הסיביות שונה ל-{0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "שינוי החסימה על שליחת הודעות, תגובות והצטרפות לערוצי קול, כך שתסתיים ב-{date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "שינוי רקע הטמעת הצ'אט." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "שינוי באנר הקהילה." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "שינוי סמל הקהילה." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "שינוי מספר החיבורים לכל חבר מ-{oldCount} ל-{newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "שינוי טקסט אזהרת התוכן מ-{oldText} ל-{newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "החלפת סמל התפקיד המותאם אישית." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "שינוי טקסט האזהרה המותאם אישית מ-{oldText} ל-{newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "שינוי הגדרת ברירת המחדל להתראות מ-{oldSetting} ל-{newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "שינוי התיאור מ-{oldText} ל-{newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "שינוי מסנן התוכן הבוטה מ-{oldFilter} ל-{newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "שינוי יישור רקע ההזמנה מ-{oldAlignment} ל-{newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "שינוי רקע ההזמנה." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "שינוי הקישור מ-{oldUrl} ל-{newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "שינוי תמונת הפרופיל הקהילתי של החבר." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "שינוי הבאנר של הפרופיל הקהילתי של החבר." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "שינוי הביוגרפיה של הפרופיל הקהילתי של החבר ל-{text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "שינוי סף היסטוריית ההודעות מ-{oldDate} ל-{newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "שינוי השם מ-{oldName} ל-{newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "שינוי הכינוי מ-{oldNick} ל-{newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "שינוי צבע התפקיד מ-{oldColor} ל-{newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "שינוי סמל התפקיד מ-{oldEmoji} ל-{newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "שינוי ערוץ המערכת מ-{oldChannel} ל-{newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "שינוי הנושא מ-{oldText} ל-{newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "שינוי מגבלת המשתמשים מ-{oldCount} ל-{newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "שינוי כתובת ה-URL המותאמת אישית מ-{oldCode} ל-{newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "שינוי רמת האימות מ-{oldLevel} ל-{newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "שינוי אזור הקול מ-{oldRegion} ל-{newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "ערוץ" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "ערוץ או קטגוריה" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "הרשאת ערוץ נוספה" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "הרשאת ערוץ בוטלה" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "הרשאת ערוץ עודכנה" @@ -7815,7 +8805,7 @@ msgstr "קהילות עם יותר מ-250 אנשים מוגדרות אוטומט #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "למחוק את ההודעות שלך בשיחה זו?" msgid "Deleted" msgstr "נמחקה" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "נמחקו ההודעות של החבר עד {duration} אחורה." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "טקסט שנמחק" msgid "Deleted your messages." msgstr "ההודעות שלך נמחקו." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "קטגוריה-שנמחקה" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "ערוץ-שנמחק" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "תפקיד-שנמחק" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "דחה את {0} והסיר את הדחייה עבור {1}." msgid "Denied {0}." msgstr "נדחה {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "נשללו {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "ההטמעות הוצגו שוב" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "שכפול אימוג'י מופעל" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "אימוג'י נוצר" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "אימוג'י נמחק" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "מקומות האימוג'י מלאים" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "האימוג'י עודכן" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "סינון לפי תאריך יצירת החשבון" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "סינון לפי פעולה" @@ -14572,18 +15587,22 @@ msgstr "סינון לפי תפקידים" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "סינון לפי משתמש" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "סינון כולם" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "סינון חברים ללא תפקידים" @@ -15890,6 +16909,11 @@ msgstr "הענקת {0} ושלילת {1}." msgid "Granted {0}." msgstr "הענקת {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "הוענקו {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "היי, {username}! מקווים שתיהנה מהשהות שלך." msgid "Hey, {username}, welcome aboard!" msgstr "היי, {username}, ברוך הבא!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "הסתרת הודעות הצטרפות בערוץ המערכת." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "הסתרת כתר הבעלים של הקהילה." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "להסתיר את המצלמה שלך?" msgid "Hide your own screen share?" msgstr "להסתיר את שיתוף המסך שלך?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "גבוהה" @@ -17688,7 +18724,7 @@ msgstr "הזמן" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "קוד ההזמנה הוא {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "הזמנה נוצרה" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "ההזמנה נמחקה" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "ההזמנה לא זמינה" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "ההזמנה עודכנה" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (שמאל)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "מיושר לשמאל" @@ -18745,6 +19783,11 @@ msgstr "אפשר לקוראי מסך להכריז על הודעות חדשות msgid "Let the community self-moderate" msgstr "אפשר לקהילה לנהל את עצמה" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "מתן אפשרות לחבר לשמוע שוב אחרים בקהילה זו." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "מאפשר ל-CSS מותאם אישית לחשוף אזורים שקופים בחלון לאחר הפעלה מחדש של אפליקציית המחשב." @@ -18815,6 +19858,16 @@ msgstr "סומן כאהוב." msgid "Likes: <0>{countLabel}" msgstr "לייקים: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "הגבלת אזכורים של תפקיד זה לחברים בעלי הרשאה לאזכר כל תפקיד." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "הגבלת הערוץ ל-{count, plural, one {# משתמש} other {# משתמשים}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "לואיזיאנה" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "נמוכה" @@ -19204,6 +20259,11 @@ msgstr "ברירת מחדל של macOS" msgid "macOS permissions" msgstr "הרשאות macOS" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "הגדרת התוכן למבוגרים של הערוץ נקבעה לירושה." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "האימוג'י סומן כמונפש." msgid "Marked emoji as static." msgstr "האימוג'י סומן כסטטי." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "סימון הערוץ כערוץ המכיל תוכן למבוגרים." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "סימון הערוץ כערוץ שאינו מכיל תוכן למבוגרים." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "החבר סומן כקבוע." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "עצירת הניגון" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "בינוני" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "גודל בינוני (ברירת מחדל)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "חבר" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "פעולות חבר עבור {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "חבר נחסם" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "חבר התנתק" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "חבר הוצא" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "רשימות החברים אינן זמינות זמנית בקהילה זו" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "חבר הועבר" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "חבר לא נמצא" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "תפקידי חברים עודכנו" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "חבר מאז" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "חסימת חבר הוסרה" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "חבר עודכן" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "חברים יוסרו כשהם לא מקוונים, אלא אם כן יקבלו תפקיד." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "חברים הוסרו" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "חברים ללא הרשאת {readMessageHistoryPermissionLabel} יכולים לראות הודעות שנשלחו לאחר תאריך זה." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "חברים, נבחר" @@ -20077,8 +21149,10 @@ msgstr "אזכורים שלך יופיעו כאן למשך {recentMentionsRetent msgid "Mentions of you show up here for {retentionDays} days." msgstr "אזכורים שלך יופיעו כאן למשך {retentionDays} ימים." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "אזכורים בלבד" @@ -20104,7 +21178,7 @@ msgstr "הודעה" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "הודעה" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "ניפוי באגים בהודעה" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "ההודעה נמחקה" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "רשימת הודעות עבור {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "הודעה הוצמדה" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "שעת הודעה" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "הצמדת ההודעה בוטלה" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "הודעות ומדיה" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "הודעות נמחקו" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "ניהול" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "פעולות ניהול ושינויים בקהילה יופיעו כאן." @@ -20915,16 +21989,51 @@ msgstr "העברה אל" msgid "Move to…" msgstr "העברה אל…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "הועבר מ- {oldChannel} אל {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "העברת הערוץ מהקטגוריה {oldCategory} לקטגוריה {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "העברת הערוץ לקטגוריה {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "העביר/ה את הערוץ לקטגוריה {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "העברת התפקיד למטה ברשימת החברים." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "העברת התפקיד למטה ברשימת התפקידים." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "העביר/ה את התפקיד למיקום {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "העברת התפקיד למעלה ברשימת החברים." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "העברת התפקיד למעלה ברשימת התפקידים." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "הודעה חדשה" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "הודעות חדשות" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "אין הפניות לקבצים מקומיים" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "אין יומנים עדיין" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "לא צוינה סיבה" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "לא ניתנה סיבה." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "ללא המרה" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "ללא המרה" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "כלי ליצירת כתובות OAuth2" msgid "Objects" msgstr "חפצים" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "חפצים" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "כבוי" @@ -23523,6 +24636,21 @@ msgstr "ההודעה המקורית לא נטענה" msgid "Original message was deleted" msgstr "ההודעה המקורית נמחקה" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "נחסם במקור על ידי {user} בתאריך {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "במקור נחסם על ידי {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "נחסם במקור בתאריך {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "מושהה עקב תנועה מופחתת. הפעל כדי להמשיך msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "מושהה עקב תנועה מופחתת. הפעל כדי להמשיך להציג קובצי GIF." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "הזמנות הושעו." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "מחיקה לצמיתות של החשבון וכל הנתונים המש msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "הסר לצמיתות הודעות ששלחת בצ'אטים פרטיים, צ'אטים קבוצתיים וקהילות. הפעולה תתבצע ברקע, ותקבל הודעה פרטית כשתסתיים." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "הוספת עקיפת הרשאות" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "הסרת עקיפת הרשאות" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "עדכון עקיפת הרשאות" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "מוכן לשדרג?" msgid "Real-time" msgstr "זמן אמת" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "סיבה" @@ -26291,26 +27440,166 @@ msgstr "התפקיד {oldLabel} הוסר." msgid "Removed roles." msgstr "הוסרו תפקידים." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "הוסר ערוץ ה-AFK." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "הסרת תמונת הפרופיל." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "הערוץ הוסר מהקטגוריה שלו." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "הסרת הערוץ מהקטגוריה {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "הוסר רקע הטמעת הצ'אט." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "הסרת באנר הקהילה." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "הסרת סמל הקהילה." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "הסרת טקסט אזהרת התוכן." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "הסרת אזהרת התוכן." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "הסרת סמל התפקיד המותאם אישית." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "הסרת טקסט האזהרה המותאם אישית." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "הוסר התיאור {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "הוסר רקע ההזמנה." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "הסרת הקישור." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "הסרת צבע ההדגשה של הפרופיל הקהילתי של החבר." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "הסרת תמונת הפרופיל הקהילתי של החבר." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "הסרת הבאנר של הפרופיל הקהילתי של החבר." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "הסרת הביוגרפיה של הפרופיל הקהילתי של החבר." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "הסרת כינויי הגוף של הפרופיל הקהילתי של החבר." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "הסרת סף היסטוריית ההודעות." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "הסרת הכינוי {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "הסרת העקיפה עבור {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "הסרת התפקיד {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "הסרת צבע התפקיד." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "הסרת סמל התפקיד." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "ערוץ הכללים הוסר." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "ערוץ המערכת הוסר." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "הסרת פסק הזמן." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "הסרת הנושא {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "אימוג'י היוניקוד הוסר." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "הוסרה הגבלת המשתמשים." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "הסרת כתובת ה-URL המותאמת אישית {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "פסק הזמן הוסר מ-{targetUserTag}" @@ -26381,6 +27670,11 @@ msgstr "שם המדבקה שונה ל-{0}." msgid "Renamed the channel to {0}." msgstr "שם הערוץ שונה ל-{0}." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "שינוי שם הקהילה מ-{oldName} ל-{newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "דרוש אימות דו-שלבי למנהלים לפני שהם יוכ msgid "Required" msgstr "נדרש" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "נדרש אימות דו-שלבי (2FA) לפעולות ניהול." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "איפוס הרווחים" msgid "Reset the connection limit." msgstr "מגבלת החיבורים אופסה." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "איפוס מיקום התפקיד ברשימת החברים." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "אזכור התפקיד הזה הוגבל לחברים בעלי ההרש msgid "Resubscribe" msgstr "חדש את המנוי" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "הזמנות הופעלו מחדש." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "חזרה למסך ההתחברות" @@ -27330,6 +28639,11 @@ msgstr "לבטל את ההזמנה הזו? הפעולה אינה הפיכה." msgid "Revoked {0}." msgstr "נשללו {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "בוטלו {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (ימין)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "מיושר לימין" @@ -27408,7 +28724,7 @@ msgstr "רינגטון" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "תפקיד" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "צבע התפקיד" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "תפקיד נוצר" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "התפקיד נוצר בהצלחה" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "תפקיד נמחק" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "שם התפקיד נדרש" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "תפקיד עודכן" @@ -28930,11 +30246,21 @@ msgstr "סשנים" msgid "Set {fieldNode} to {0}." msgstr "{fieldNode} הוגדר ל-{0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "הגדרת סמל מותאם אישית לתפקיד." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "הגדר סטטוס מותאם אישית" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "הגדרת מיקום לתפקיד ברשימת החברים." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "צבע התפקיד הוגדר ל-<0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "המצב האיטי הוגדר ל-{0} {seconds, plural, one {שנייה} other {שניות}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "הגדרת מצב איטי ל- {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "הגדר סטטוס" msgid "Set the AFK channel to {0}." msgstr "ערוץ ה-AFK הוגדר ל-{0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "הגדרת ערוץ ה-AFK ל-{channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "זמן חוסר הפעילות הוגדר ל-{0} שניות." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "הגדרת איכות השמע ל-{kbps} קילו-ביט לשנייה." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "סוג הערוץ הוגדר ל-{0}." msgid "Set the connection limit to {0}." msgstr "מגבלת החיבורים הוגדרה ל-{0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "הגדרת טקסט אזהרת התוכן ל-{text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "הגדרת טקסט אזהרה מותאם אישית ל-{text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "הגדרת התיאור ל-{text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "יישור תמונת הרקע של ההזמנה הוגדר ל-{0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "הגדרת הקישור ל-{url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "הגדרת צבע ההדגשה של הפרופיל הקהילתי של החבר ל-{color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "הגדרת הביוגרפיה של הפרופיל הקהילתי של החבר ל-{text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "הגדרת כינויי הגוף של הפרופיל הקהילתי של החבר ל-{text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "הגדרת סף היסטוריית ההודעות ל- {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "הגדרת הכינוי ל-{nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "הגדר את שם המוצר הציבורי, צבע ערכת הנושא ונכסי התמונה שהאפליקציות מציגות." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "הגדרת צבע התפקיד ל-{color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "הגדרת סמל התפקיד ל-{emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "ערוץ הכללים הוגדר ל-{0}." msgid "Set the system channel to {0}." msgstr "ערוץ המערכת הוגדר ל-{0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "הגדרת ערוץ המערכת ל-{channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "הגדרת הנושא ל-{text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "מגבלת המשתמשים הוגדרה ל-{0}." msgid "Set the vanity URL to {0}." msgstr "כתובת ה-URL המותאמת אישית הוגדרה ל-{0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "הגדרת כתובת ה-URL המותאמת אישית ל-{code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "הגדרת אזור הקול ל-{region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "הגדרת אזור הקול לאוטומטי." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "הצג את באנר הפרופיל הגלובלי שלך בקהילה msgid "Show your Visionary as a regular subscription instead" msgstr "הצג את Visionary כמנוי רגיל במקום זאת" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "הצגת חברים עם תפקיד זה במקטע משלהם ברשימת החברים." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "משהו השתבש בעת ביצוע ההחזר הכספי. אם זה ממשיך לקרות, יש לפנות לתמיכה." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "משהו השתבש בזמן טעינת יומן הפעילות." @@ -31105,6 +32531,11 @@ msgstr "התחלת שיחה קולית" msgid "Start with computer" msgstr "הפעלה עם המחשב" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "תחילת הצגת חברים עם תפקיד זה בנפרד." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "מדבקה" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "המדבקה לא נדחסה מספיק" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "מדבקה נוצרה" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "מדבקה נמחקה" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "מקומות המדבקות מלאים" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "מדבקה עודכנה" @@ -31412,6 +32843,46 @@ msgstr "הפסק לצפות בשידור" msgid "Stop." msgstr "עצור." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "הופסקה האפשרות לשמות גמישים לערוצי טקסט." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "הופסקה האפשרות לאחרים לשכפל את האימוג'ים של הקהילה הזו." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "הופסקה האפשרות לאחרים לשכפל את המדבקות של הקהילה הזו." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "הופסקה ההצגה הנפרדת של חברים עם תפקיד זה." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "הופסקה הסתרת הודעות ההצטרפות בערוץ המערכת." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "הופסקה הסתרת כתר הבעלים של הקהילה." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "הופסקה הדרישה לאימות דו-שלבי (2FA) לפעולות ניהול." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "מניעת האפשרות מהחבר לשמוע אחרים בקהילה זו." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "סנכרן עם קטגוריה" msgid "Syntax highlighting" msgstr "הדגשת תחביר" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "מערכת" @@ -32449,6 +33922,16 @@ msgstr "האפליקציה קרסה. בודקים אם יש עדכונים שע msgid "The app should now be signed in to your account." msgstr "האפליקציה אמורה להיות מחוברת כעת לחשבון שלך." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "החסימה כבר פגה בתאריך {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "החסימה הייתה אמורה לפוג בתאריך {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "הבוט נוסף אל <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "העדכון לשולחן העבודה הורד. הפעל מחדש את msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "הקובץ שהורד נשמר במחשב שלך. התקן אותו באמצעות מנהל החבילות הרגיל שלך." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "האימוג'י הועלה על ידי {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "הקובץ מכיל את אסימון האימות שנאחזר מ-<0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "הקובץ שאתה מנסה להעלות חורג ממגבלת הגוד msgid "The following people can't be added to this group DM:" msgstr "לא ניתן להוסיף את האנשים הבאים לצ'אט הקבוצתי הזה:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "ההזמנה נוצרה על ידי {user} בתאריך {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "ההזמנה נוצרה על ידי {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "ההזמנה נוצרה בתאריך {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "מעולם לא נעשה שימוש בהזמנה." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "ההזמנה הייתה אמורה לפוג בתאריך {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "ההזמנה הוגדרה לאפשר שימושים ללא הגבלה." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "ההזמנה הוגדרה לפוג תוקף לאחר {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "ההזמנה הוגדרה להעניק חברות זמנית." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "ההזמנה הוגדרה כך שלא תפוג לעולם." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "השפה שרוב הקהילה שלך דוברת. משמשת לסינון תוצאות הגילוי." @@ -32518,6 +34051,11 @@ msgstr "הקישור עדיין עשוי לפעול. נסה שוב בעוד רג msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "בדיקת התוכן למבוגרים בוטלה. אפשר לסגור את הכרטיסייה הזו ולנסות שוב מהאפליקציה." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "החבר כבר לא זמני." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "המחיר החדש כבר מתוזמן עבור {effectiveDate}." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "הערוץ הקולי החדש יעשה שימוש חוזר בהרשאות, במגבלת המשתמשים ובקצב הסיביות מתוך <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "העקיפה התירה {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "העקיפה שללה {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "הדף שחיפשת אינו קיים או הועבר." @@ -32565,6 +34113,11 @@ msgstr "כתובת ה-redirect_uri שצוינה אינה רשומה עבור ה msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "ה-redirect_uri שסופק חייב להשתמש ב-HTTP או ב-HTTPS." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "התפקיד העניק את ההרשאות {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "המדבקה הועלתה כמונפשת." msgid "The sticker was uploaded as static." msgstr "המדבקה הועלתה כסטטית." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "המדבקה הועלתה על ידי {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "המערכת נתנה ל-{target} את התפקיד {role}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "המערכת הסירה את התפקיד {role} מ-{target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "שם המשתמש <0>{fluxerTag} כבר תפוס. אם תמשיך, msgid "The verification code is invalid or expired." msgstr "קוד האימות שגוי או שפג תוקפו." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "ה-webhook נוצר על ידי {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "הכרטיס הזה אינו תואם למדינת החיוב שלך, ולכן לא ניתן להשתמש בו עבור המטבע המקומי הזה. השתמש בכרטיס מקומי, או חזור אל {productName} ובחר אמצעי תשלום אחר." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "קטגוריה זו כבר מכילה את המספר המרבי של {maxChannelsPerCategory} ערוצים." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "מעקב אחר פעולות מנהלים ברחבי הקהילה." @@ -33953,6 +35526,11 @@ msgstr "להעביר את בעלות הקבוצה אל {userName}?" msgid "Transfer ownership" msgstr "העברת בעלות" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "העברת בעלות על הקהילה אל {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "הפעל פרטיות סטרימינג" msgid "Turn text smileys into emoji" msgstr "המר סמיילים טקסטואליים לאימוג'י" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "כיבוי התוכן למבוגרים." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "כיבוי המצב האיטי." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "כיבוי אזהרת התוכן." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "כיבוי הבאנר המנותק." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "כיבוי המיקרופון של החבר בקהילה זו." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "הפעלת תוכן למבוגרים." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "הפעלת אזהרת תוכן." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "הפעלת הבאנר המנותק." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "הפעלה מחדש של המיקרופון של החבר בקהילה זו." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "כיבוי הרשאות עלול למנוע מהאפליקציה לפעול כראוי." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "אוקראינית" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "לא ניתן לטעון את יומני הפעילות" @@ -34859,6 +36482,7 @@ msgstr "יעד לא ידוע" msgid "unknown user" msgstr "משתמש לא ידוע" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "משתמש לא ידוע" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "בשימוש בקהילה זו בלבד." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "ורמונט" msgid "Version" msgstr "גרסה" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "גבוה מאוד" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "מצלמת רשת" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Webhook נוצר" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhook נמחק" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "שם ה-Webhook" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhook עודכן" diff --git a/fluxer_app/src/features/i18n/locales/hi/messages.po b/fluxer_app/src/features/i18n/locales/hi/messages.po index 210d4a83f..7c6ed1133 100644 --- a/fluxer_app/src/features/i18n/locales/hi/messages.po +++ b/fluxer_app/src/features/i18n/locales/hi/messages.po @@ -56,6 +56,31 @@ msgstr "{a} टाइप कर रहे हैं..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} और {c} टाइप कर रहे हैं..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} ने {channel} में {user} के लिए एक अनुमति ओवरराइड जोड़ा।" + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} ने {channel} में @everyone के लिए एक अनुमति ओवरराइड जोड़ा।" + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} ने {channel} में {role} रोल के लिए एक अनुमति ओवरराइड जोड़ा।" + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} ने एक स्टिकर जोड़ा।" + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} ने एक इमोजी जोड़ा।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} ने {channelNode} में {targetEntity} के लिए चैनल अनुमतियाँ जोड़ीं।" @@ -64,35 +89,200 @@ msgstr "{actor} ने {channelNode} में {targetEntity} के लिए msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} ने {targetEntity} के लिए चैनल अनुमतियाँ जोड़ीं।" +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} ने बॉट {target} को अस्थायी सदस्य के रूप में जोड़ा।" + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} ने बॉट {target} को जोड़ा।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} ने बॉट {targetMember} को जोड़ा।" +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} ने {emoji} इमोजी जोड़ा।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} ने इमोजी {namedTarget} जोड़ा।" +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} ने स्टिकर {name} जोड़ा।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} ने स्टिकर {namedTarget} जोड़ा।" +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} ने {target} को {duration} के लिए बैन किया।" + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} ने {target} को बैन कर दिया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} ने {targetMember} को बैन किया।" +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} ने {target} का मैसेज भेजने, रिएक्शन देने और वॉइस में शामिल होने पर लगाया गया ब्लॉक {date} को समाप्त होने के लिए बदल दिया।" + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} ने {target} का उपनाम {oldNick} से बदलकर {newNick} कर दिया।" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} ने श्रेणी {channel} के अनुमति ओवरराइड बदल दिए।" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} ने {channel} के अनुमति ओवरराइड बदल दिए।" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} ने लिंक चैनल {channel} के अनुमति ओवरराइड बदल दिए।" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} ने टेक्स्ट चैनल {channel} के अनुमति ओवरराइड बदल दिए।" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} ने वॉइस चैनल {channel} के अनुमति ओवरराइड बदल दिए।" + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} ने वैनिटी यूआरएल को {oldCode} से बदलकर {newCode} कर दिया।" + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} ने अपनी कम्युनिटी प्रोफ़ाइल का अवतार बदला।" + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} ने अपना कम्युनिटी प्रोफ़ाइल बैनर बदल दिया।" + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} ने अपने कम्युनिटी प्रोफ़ाइल बायो को {text} में बदल दिया।" + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} ने अपना उपनाम {oldNick} से बदलकर {newNick} कर लिया।" + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} ने एक वेबहुक बनाया।" + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} ने {channel} श्रेणी बनाई।" + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} ने {category} में {channel} चैनल बनाया।" + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} ने {channel} चैनल बनाया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} ने चैनल {namedTarget} बनाया।" +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} ने {channel} के लिए इनवाइट {code} बनाया।" + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} ने इनवाइट {code} बनाया।" + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} ने इनवाइट {namedTarget}{0} बनाया।" +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} ने {category} में लिंक चैनल {channel} बनाया।" + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} ने लिंक चैनल {channel} बनाया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} ने रोल {namedTarget} बनाया।" +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} ने {role} रोल बनाया।" + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} ने {category} में टेक्स्ट चैनल {channel} बनाया।" + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} ने टेक्स्ट चैनल {channel} बनाया।" + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} ने {category} में वॉइस चैनल {channel} बनाया।" + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} ने वॉइस चैनल {channel} बनाया।" + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} ने {channel} में {name} वेबहुक बनाया।" + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} ने वेबहुक {name} बनाया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} ने webhook {namedTarget} बनाया।" @@ -103,49 +293,209 @@ msgstr "{actor} ने webhook {namedTarget} बनाया।" msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} ने {0} {bulkCount, plural, one {मैसेज} other {मैसेज}}{1} डिलीट किए।" +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} ने {channel} में {count, plural, one {# मैसेज} other {# मैसेज}} हटा दिए।" + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} ने {count, plural, one {# मैसेज} other {# मैसेज}} हटा दिए।" + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} ने {channel} में एक मैसेज हटा दिया।" + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} ने एक मैसेज हटा दिया।" + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} ने एक मैसेज डिलीट किया{0}।" +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} ने एक स्टिकर हटा दिया।" + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} ने एक वेबहुक हटा दिया।" + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} ने एक इमोजी हटा दिया।" + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} ने कई मैसेज डिलीट किए{0}।" +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} ने {channel} में कुछ मैसेज हटा दिए।" + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} ने कुछ मैसेज हटा दिए।" + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} ने श्रेणी {channel} हटा दी।" + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} ने चैनल {channel} को हटा दिया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} ने {namedTarget} चैनल डिलीट कर दिया।" +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} ने {emoji} इमोजी हटा दिया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} ने इमोजी {namedTarget} को डिलीट किया।" +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} ने {channel} के लिए इनवाइट {code} हटा दिया।" + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} ने इनवाइट {code} को हटा दिया।" + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} ने इनवाइट {namedTarget}{0} डिलीट किया।" +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} ने लिंक चैनल {channel} को हटा दिया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} ने रोल {namedTarget} डिलीट किया।" +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} ने {role} रोल हटा दिया।" + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} ने स्टिकर {name} हटा दिया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} ने स्टिकर {namedTarget} डिलीट किया।" +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} ने टेक्स्ट चैनल {channel} को हटा दिया।" + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} ने वॉइस चैनल {channel} को हटा दिया।" + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} ने {channel} से वेबहुक {name} हटा दिया।" + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} ने वेबहुक {name} को हटा दिया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} ने वेबहुक {namedTarget} डिलीट किया।" +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} ने {target} को {channel} से डिस्कनेक्ट कर दिया।" + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} ने {target} को वॉइस से डिस्कनेक्ट कर दिया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} ने {targetMember} को वॉइस से डिसकनेक्ट किया।" +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} ने {channel} से डिस्कनेक्ट किया।" + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} वॉइस से डिस्कनेक्ट हो गए।" + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} ने {target} को {role} रोल दिया।" + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} ने {target} को किक कर दिया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} ने {targetMember} को किक किया।" +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} ने {target} को इस कम्युनिटी में फिर से दूसरों को सुनने दिया।" + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} ने एक बदलाव किया जिसे ऐप का यह संस्करण नहीं दिखा सकता।" + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} {target} को {oldChannel} से {newChannel} में ले गए।" + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} {target} को {channel} में ले गए।" + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} {target} को किसी दूसरे वॉइस चैनल में ले गए।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} ने {targetMember} को {channelNode} में मूव किया।" @@ -154,16 +504,68 @@ msgstr "{actor} ने {targetMember} को {channelNode} में मूव msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} ने {targetMember} को दूसरे वॉइस चैनल में मूव किया।" +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} ने {oldChannel} से {newChannel} में जगह बदली।" + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} {role} रोल को सदस्य सूची में नीचे ले गए।" + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} {role} रोल को रोल सूची में नीचे ले गए।" + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} {role} रोल को सदस्य सूची में ऊपर ले गए।" + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} {role} रोल को रोल सूची में ऊपर ले गए।" + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} {channel} में चले गए।" + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} किसी दूसरे वॉइस चैनल में चले गए।" + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} ने इनवाइट रोक दिए।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} ने {targetEntity} पर एक ऑडिट कार्रवाई की।" +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} ने {channel} में एक मैसेज पिन किया।" + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} ने एक मैसेज पिन किया।" + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} ने एक मैसेज पिन किया{0}।" +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} ने निष्क्रिय सदस्यों को हटा दिया।" @@ -179,19 +581,249 @@ msgstr "{actor} ने {channelNode} में {targetEntity} के लिए msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} ने {targetEntity} के लिए चैनल अनुमतियाँ हटाईं।" +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} ने {target} का उपनाम {nick} हटा दिया।" + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} ने {channel} से {user} के लिए अनुमति ओवरराइड हटा दिया।" + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} ने {channel} से @everyone के लिए अनुमति ओवरराइड हटा दिया।" + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} ने {channel} से {role} रोल के लिए अनुमति ओवरराइड हटा दिया।" + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} ने {target} से {role} रोल हटा दिया।" + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} ने {target} का टाइमआउट हटा दिया।" + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} ने वैनिटी यूआरएल {code} हटा दिया।" + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} ने अपनी कम्युनिटी प्रोफ़ाइल का एक्सेंट रंग हटा दिया।" + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} ने अपनी कम्युनिटी प्रोफ़ाइल का अवतार हटा दिया।" + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} ने अपना कम्युनिटी प्रोफ़ाइल बैनर हटा दिया।" + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} ने अपना कम्युनिटी प्रोफ़ाइल बायो हटा दिया।" + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} ने अपनी कम्युनिटी प्रोफ़ाइल के सर्वनाम हटा दिए।" + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} ने अपना उपनाम {nick} हटा दिया।" + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} ने श्रेणी {oldName} का नाम बदलकर {newName} कर दिया।" + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} ने चैनल {oldName} का नाम बदलकर {newName} कर दिया।" + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} ने कम्युनिटी का नाम {oldName} से बदलकर {newName} कर दिया।" + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} ने इमोजी {oldEmoji} का नाम बदलकर {newEmoji} कर दिया।" + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} ने लिंक चैनल {oldName} का नाम बदलकर {newName} कर दिया।" + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} ने रोल {oldName} का नाम बदलकर {newName} कर दिया।" + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} ने स्टिकर {oldName} का नाम बदलकर {newName} कर दिया।" + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} ने टेक्स्ट चैनल {oldName} का नाम बदलकर {newName} कर दिया।" + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} ने वॉइस चैनल {oldName} का नाम बदलकर {newName} कर दिया।" + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} ने वेबहुक {oldName} का नाम बदलकर {newName} कर दिया।" + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} ने {role} रोल के लिए सदस्य सूची की स्थिति रीसेट कर दी।" + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} ने इनवाइट फिर से शुरू कर दिए।" + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} ने {role} रोल के लिए सदस्य सूची में एक स्थान निर्धारित किया।" + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} ने {target} का उपनाम {nick} पर सेट किया।" + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} ने वैनिटी यूआरएल को {code} पर सेट किया।" + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} ने अपनी कम्युनिटी प्रोफ़ाइल का एक्सेंट रंग {color} पर सेट किया।" + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} ने अपना कम्युनिटी प्रोफ़ाइल अवतार सेट किया।" + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} ने अपना कम्युनिटी प्रोफ़ाइल बैनर सेट किया।" + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} ने अपने कम्युनिटी प्रोफ़ाइल बायो को {text} पर सेट किया।" + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} ने अपनी कम्युनिटी प्रोफ़ाइल के सर्वनाम {text} पर सेट किए।" + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} ने अपना उपनाम {nick} पर सेट किया।" + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} ने {target} को इस कम्युनिटी में दूसरों को सुनने से रोक दिया।" + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} ने {target} को {date} तक के लिए टाइमआउट कर दिया।" + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} ने {user} को कम्युनिटी का स्वामित्व ट्रांसफ़र कर दिया।" + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} ने इस कम्युनिटी में {target} का माइक्रोफ़ोन वापस चालू कर दिया।" + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} ने इस कम्युनिटी में {target} का माइक्रोफ़ोन बंद कर दिया।" + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} ने {target} को अनबैन कर दिया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} ने {targetMember} को अनबैन किया।" +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} ने {channel} में एक मैसेज अनपिन किया।" + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} ने एक मैसेज को अनपिन किया।" + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} ने एक मैसेज अनपिन किया{0}।" +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} ने {target} को अपडेट किया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} ने {targetMember} को अपडेट किया।" +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} ने एक स्टिकर अपडेट किया।" + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} ने एक वेबहुक अपडेट किया।" + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} ने एक इमोजी अपडेट किया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} ने {channelNode} में {targetEntity} के लिए चैनल अनुमतियाँ अपडेट कीं।" @@ -204,35 +836,112 @@ msgstr "{actor} ने {targetEntity} के लिए चैनल अनुम msgid "{actor} updated roles for {targetMember}." msgstr "{actor} ने {targetMember} के रोल अपडेट किए।" +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} ने श्रेणी {channel} को अपडेट किया।" + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} ने चैनल {channel} को अपडेट किया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} ने चैनल {namedTarget} को अपडेट किया।" +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} ने कम्युनिटी सेटिंग्स अपडेट कीं।" +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} ने इमोजी {emoji} को अपडेट किया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} ने इमोजी {namedTarget} को अपडेट किया।" +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} ने इनवाइट {code} को अपडेट किया।" + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} ने इनवाइट {namedTarget}{0} अपडेट किया।" +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} ने लिंक चैनल {channel} को अपडेट किया।" + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} ने {user} के लिए {channel} में अनुमति ओवरराइड को अपडेट किया।" + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} ने {channel} में @everyone के लिए अनुमति ओवरराइड को अपडेट किया।" + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} ने {channel} में {role} रोल के लिए अनुमति ओवरराइड को अपडेट किया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} ने रोल {namedTarget} अपडेट किया।" +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} ने {role} रोल को अपडेट किया।" + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} ने {target} के रोल अपडेट किए।" + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} ने स्टिकर {name} को अपडेट किया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} ने स्टिकर {namedTarget} को अपडेट किया।" +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} ने टेक्स्ट चैनल {channel} को अपडेट किया।" + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} ने वॉइस चैनल {channel} को अपडेट किया।" + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} ने वेबहुक {name} को अपडेट किया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} ने वेबहुक {namedTarget} को अपडेट किया।" +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} ने अपनी कम्युनिटी प्रोफ़ाइल अपडेट की।" + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# आइटम} other {# आइटम}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# सदस्य} other {# सदस्य}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# और अनुमति} other {# और अनुमतियाँ}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# साझा कम्युनिटी} other {# साझा कम्युनिटी}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {# डिवाइस दिखाएँ} other {# msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {# डिवाइस से साइन आउट करें} other {# डिवाइस से साइन आउट करें}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {इनवाइट को # उपयोग तक सीमित किया गया था।} other {इनवाइट को # उपयोगों तक सीमित किया गया था।}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {इनवाइट का # बार उपयोग किया गया था।} other {इनवाइट का # बार उपयोग किया गया था।}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "{guildName} चैनल" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "गतिविधि" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "गतिविधि लॉग" @@ -2713,10 +3437,60 @@ msgstr "{0} जोड़ा गया।" msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "{length, plural, one {# स्थानीय फ़ाइल संदर्भ जोड़ा गया} other {# स्थानीय फ़ाइल संदर्भ जोड़े गए}}।" +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "चैट एम्बेड बैकग्राउंड जोड़ा गया।" + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "कम्युनिटी बैनर जोड़ा गया।" + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "कम्युनिटी का आइकॉन जोड़ा गया।" + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "{text} के साथ एक सामग्री चेतावनी जोड़ी गई।" + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "एक सामग्री चेतावनी जोड़ी गई।" + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "एक अवतार जोड़ा गया।" + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "इनवाइट बैकग्राउंड जोड़ा गया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "रोल जोड़े गए।" +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "सदस्य का कम्युनिटी प्रोफ़ाइल अवतार जोड़ा गया।" + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "सदस्य का कम्युनिटी प्रोफ़ाइल बैनर जोड़ा गया।" + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "{role} रोल जोड़ा गया।" + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "अलाइनमेंट कंट्रोल केवल चौड #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "सभी <0/>, हमेशा के लिए। कोई बिलिंग नहीं, कोई नवीनीकरण नहीं।" #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "सभी कार्रवाइयाँ" @@ -3001,10 +3775,12 @@ msgstr "सभी भाषाएँ" msgid "All members" msgstr "सभी सदस्य" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "सभी समय" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "सभी यूज़र" @@ -3197,6 +3973,16 @@ msgstr "{0} को अनुमति दी और {1} के लिए अन msgid "Allowed {0}." msgstr "{0} की अनुमति दी गई।" +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "{permissions} की अनुमति दी गई।" + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "सभी सदस्यों को इस रोल को मेंशन करने की अनुमति दी गई।" + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "अनुमत कॉलर" @@ -3205,15 +3991,35 @@ msgstr "अनुमत कॉलर" msgid "Allowed everyone to mention this role." msgstr "सभी को इस रोल को मेंशन करने की अनुमति दी गई।" +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "लचीले टेक्स्ट चैनल नामों की अनुमति दी।" + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "अनुमत इनवाइट" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "दूसरों को इस कम्युनिटी के इमोजी क्लोन करने की अनुमति दी गई।" + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "दूसरों को इस कम्युनिटी के स्टिकर क्लोन करने की अनुमति दी गई।" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "अनुमत रीडायरेक्ट" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "प्रति सदस्य {count, plural, one {# कनेक्शन} other {# कनेक्शन}} तक की अनुमति दी गई।" + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "सदस्यों को बैन करें" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "कम्युनिटी से सदस्यों को बैन करें, और चाहें तो उनके हाल के मैसेज भी मिटाएँ।" +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "बैन का कारण" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "यूज़र को ब्लॉक करें" msgid "Blocked" msgstr "ब्लॉक किए गए" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "सदस्य को मैसेज भेजने, रिएक्शन देने और वॉइस में शामिल होने से {date} तक ब्लॉक कर दिया गया।" + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "बॉट" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "बॉट जोड़ा गया" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "श्रेणी मिटा दी गई" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "श्रेणी भरी हुई है" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "बीच में" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "केंद्रित" @@ -6298,11 +7116,183 @@ msgstr "अपना यूज़रनेम बदलें" msgid "Changed nickname from {0} to {1}." msgstr "उपनाम {0} से बदलकर {1} कर दिया गया।" +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "स्लोमोड {oldDuration} से बदलकर {newDuration} कर दिया गया।" + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "AFK चैनल को {oldChannel} से बदलकर {newChannel} कर दिया गया।" + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "AFK टाइमआउट को {oldDuration} से बदलकर {newDuration} कर दिया गया।" + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "ऑडियो क्वालिटी {oldKbps} kbps से बदलकर {newKbps} kbps कर दी गई।" + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "अवतार बदल दिया गया।" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "बिटरेट बदलकर {0} कर दिया गया।" +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "मैसेज भेजने, रिएक्शन देने और वॉइस में शामिल होने पर लगा ब्लॉक {date} को समाप्त होने के लिए बदल दिया गया।" + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "चैट एम्बेड बैकग्राउंड बदल दिया गया।" + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "कम्युनिटी बैनर बदला गया।" + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "कम्युनिटी आइकॉन बदला गया।" + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "प्रति सदस्य कनेक्शन {oldCount} से बदलकर {newCount} कर दिया गया।" + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "सामग्री चेतावनी टेक्स्ट को {oldText} से बदलकर {newText} कर दिया गया।" + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "कस्टम रोल आइकन बदला गया।" + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "कस्टम चेतावनी टेक्स्ट को {oldText} से बदलकर {newText} कर दिया गया।" + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "डिफ़ॉल्ट सूचना सेटिंग को {oldSetting} से बदलकर {newSetting} कर दिया गया।" + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "विवरण {oldText} से बदलकर {newText} कर दिया गया।" + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "अश्लील सामग्री फ़िल्टर को {oldFilter} से {newFilter} में बदल दिया गया।" + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "इनवाइट बैकग्राउंड अलाइनमेंट को {oldAlignment} से {newAlignment} में बदल दिया गया।" + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "इनवाइट बैकग्राउंड बदल दिया गया।" + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "लिंक {oldUrl} से बदलकर {newUrl} कर दिया गया।" + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "सदस्य का कम्युनिटी प्रोफ़ाइल अवतार बदला गया।" + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "सदस्य का कम्युनिटी प्रोफ़ाइल बैनर बदला गया।" + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "सदस्य की कम्युनिटी प्रोफ़ाइल बायो को {text} में बदल दिया।" + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "मैसेज हिस्ट्री थ्रेशोल्ड {oldDate} से बदलकर {newDate} कर दिया गया।" + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "नाम {oldName} से बदलकर {newName} कर दिया गया।" + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "उपनाम {oldNick} से बदलकर {newNick} कर दिया गया।" + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "रोल का रंग {oldColor} से {newColor} में बदल दिया गया।" + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "रोल का आइकन {oldEmoji} से बदलकर {newEmoji} कर दिया गया।" + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "सिस्टम चैनल को {oldChannel} से बदलकर {newChannel} कर दिया गया।" + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "विषय को {oldText} से बदलकर {newText} कर दिया गया।" + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "यूज़र सीमा {oldCount} से बदलकर {newCount} कर दी गई।" + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "वैनिटी यूआरएल {oldCode} से बदलकर {newCode} कर दिया गया।" + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "वेरिफ़िकेशन स्तर {oldLevel} से बदलकर {newLevel} कर दिया गया।" + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "वॉइस क्षेत्र {oldRegion} से {newRegion} में बदल दिया गया।" + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "चैनल" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "चैनल या श्रेणी" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "चैनल ओवरराइट जोड़ा गया" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "चैनल ओवरराइट हटाया गया" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "चैनल ओवरराइट अपडेट किया गया" @@ -7815,7 +8805,7 @@ msgstr "250 से ज़्यादा लोगों वाली कम् #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "इस बातचीत में अपने मैसेज मि msgid "Deleted" msgstr "मिटाया गया" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "सदस्य की हालिया मैसेज हिस्ट्री का {duration} हटा दिया गया।" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "मिटाया गया टेक्स्ट" msgid "Deleted your messages." msgstr "आपके मैसेज मिटा दिए गए।" +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "मिटाई-गई-श्रेणी" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "मिटाया-गया-चैनल" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "मिटाया-गया-रोल" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "{0} को अस्वीकार किया गया और {1} msgid "Denied {0}." msgstr "{0} को अस्वीकार किया गया।" +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "{permissions} को अस्वीकार कर दिया गया।" + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "एम्बेड फिर से दिखाए गए" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "इमोजी क्लोनिंग चालू है" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "इमोजी बनाया गया" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "इमोजी हटाया गया" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "इमोजी स्लॉट भरे हुए हैं" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "इमोजी अपडेट किया गया" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "अकाउंट बनाने की तारीख के अनुसार फ़िल्टर करें" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "कार्रवाई के अनुसार फ़िल्टर करें" @@ -14572,18 +15587,22 @@ msgstr "रोल के अनुसार फ़िल्टर करें" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "यूज़र के अनुसार फ़िल्टर करें" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "सभी को फ़िल्टर करें" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "बिना रोल वाले सदस्यों को फ़िल्टर करें" @@ -15890,6 +16909,11 @@ msgstr "{0} की अनुमति दी गई और {1} की अनु msgid "Granted {0}." msgstr "{0} की अनुमति दी गई।" +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "{permissions} प्रदान किए गए।" + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "नमस्ते, {username}! आशा है कि आप यहा msgid "Hey, {username}, welcome aboard!" msgstr "नमस्ते, {username}, आपका स्वागत है!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "सिस्टम चैनल में शामिल होने के मैसेज छिपा दिए गए।" + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "कम्युनिटी मालिक का क्राउन छिपा दिया गया।" + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "अपना कैमरा छिपाएँ?" msgid "Hide your own screen share?" msgstr "अपनी स्क्रीन शेयरिंग छिपाएँ?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "उच्च" @@ -17688,7 +18724,7 @@ msgstr "आमंत्रित करें" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "इनवाइट कोड {0} है।" #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "इनवाइट बनाया गया" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "इनवाइट हटाया गया" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "इनवाइट उपलब्ध नहीं है" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "इनवाइट अपडेट किया गया" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (बायाँ)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "बाएँ संरेखित" @@ -18745,6 +19783,11 @@ msgstr "जब खुले चैनल में नए मैसेज आए msgid "Let the community self-moderate" msgstr "कम्युनिटी को खुद मॉडरेट करने दें" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "सदस्य को इस कम्युनिटी में फिर से दूसरों को सुनने दिया।" + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "डेस्कटॉप ऐप को रीस्टार्ट करने के बाद कस्टम CSS पारदर्शी विंडो क्षेत्र दिखा सकता है।" @@ -18815,6 +19858,16 @@ msgstr "लाइक किया गया।" msgid "Likes: <0>{countLabel}" msgstr "लाइक: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "इस रोल के मेंशन को केवल उन सदस्यों तक सीमित कर दिया गया जिन्हें किसी भी रोल को मेंशन करने की अनुमति है।" + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "चैनल को {count, plural, one {# यूज़र} other {# यूज़र}} तक सीमित कर दिया गया।" + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "लुइज़ियाना" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "कम" @@ -19204,6 +20259,11 @@ msgstr "macOS डिफ़ॉल्ट" msgid "macOS permissions" msgstr "macOS अनुमतियाँ" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "चैनल की वयस्क सामग्री सेटिंग को इनहेरिट पर सेट किया गया।" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "इमोजी को एनिमेटेड के तौर पर msgid "Marked emoji as static." msgstr "इमोजी को स्टैटिक के तौर पर मार्क किया गया।" +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "चैनल को वयस्क सामग्री वाले चैनल के रूप में चिह्नित किया गया।" + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "चैनल को वयस्क सामग्री रहित चैनल के रूप में चिह्नित किया गया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "सदस्य को स्थायी के तौर पर मार्क किया गया।" @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "प्लेबैक रोकें" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "मध्यम" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "मध्यम आकार (डिफ़ॉल्ट)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "सदस्य" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "{displayName} के लिए सदस्य कार्रवाइयाँ" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "सदस्य को बैन किया गया" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "सदस्य डिस्कनेक्ट हो गया" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "सदस्य को किक किया गया" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "इस कम्युनिटी में सदस्यों की सूची अभी उपलब्ध नहीं है" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "सदस्य को ले जाया गया" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "सदस्य नहीं मिला" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "सदस्य के रोल अपडेट किए गए" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "सदस्य बने" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "सदस्य को अनबैन किया गया" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "सदस्य अपडेट किया गया" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "सदस्यों को ऑफ़लाइन होने पर हटा दिया जाता है, जब तक कि उन्हें कोई रोल न दिया जाए।" #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "सदस्य हटाए गए" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "जिन सदस्यों के पास {readMessageHistoryPermissionLabel} अनुमति नहीं है, वे इस तारीख के बाद भेजे गए मैसेज देख सकते हैं।" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "सदस्य, चुने गए" @@ -20077,8 +21149,10 @@ msgstr "आपके मेंशन यहां {recentMentionsRetentionDays} msgid "Mentions of you show up here for {retentionDays} days." msgstr "आपके मेंशन यहां {retentionDays} दिनों तक दिखेंगे।" +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "सिर्फ़ मेंशन" @@ -20104,7 +21178,7 @@ msgstr "मैसेज" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "मैसेज" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "मैसेज डीबग" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "मैसेज मिटाया गया" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "{channelName} के लिए मैसेज सूची" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "मैसेज पिन किया गया" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "मैसेज का समय" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "मैसेज अनपिन किया गया" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "मैसेज और मीडिया" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "मैसेज मिटाए गए" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "मॉडरेशन" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "मॉडरेशन ऐक्शन और कम्युनिटी में किए गए बदलाव यहां दिखेंगे।" @@ -20915,16 +21989,51 @@ msgstr "यहां ले जाएं" msgid "Move to…" msgstr "यहां ले जाएं…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "{oldChannel} से {newChannel} में ले जाया गया।" + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "चैनल को श्रेणी {oldCategory} से श्रेणी {newCategory} में ले जाया गया।" + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "चैनल को {category} श्रेणी में ले जाया गया।" + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "चैनल को {0} श्रेणी में ले जाया गया।" +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "सदस्य सूची में रोल को नीचे ले जाया गया।" + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "रोल को रोल सूची में नीचे ले जाया गया।" + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "रोल को {0} स्थान पर ले जाया गया।" +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "सदस्य सूची में रोल को ऊपर ले जाया गया।" + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "रोल को रोल सूची में ऊपर ले जाया गया।" + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "नया मैसेज" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "नए मैसेज" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "किसी स्थानीय फ़ाइल का संदर्भ नहीं है" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "अभी तक कोई लॉग नहीं" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "कोई वजह नहीं बताई गई" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "कोई वजह नहीं बताई गई।" @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "रूपांतरण नहीं" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "रूपांतरण नहीं" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "OAuth2 यूआरएल बिल्डर" msgid "Objects" msgstr "वस्तुएँ" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "वस्तुएँ" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "बंद" @@ -23523,6 +24636,21 @@ msgstr "मूल मैसेज लोड नहीं हो पाया" msgid "Original message was deleted" msgstr "मूल मैसेज मिटा दिया गया" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "{user} द्वारा {date} को मूल रूप से बैन किया गया था।" + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "मूल रूप से {user} द्वारा बैन किया गया।" + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "मूल रूप से {date} को बैन किया गया था।" + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "कम गति के कारण रोका गया। एनि msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "कम गति के कारण रोका गया। GIF चलाने के लिए चालू करें।" +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "इनवाइट रोके गए।" + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "अपना अकाउंट और उससे जुड़ा स msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "DM, ग्रुप DM और कम्युनिटी में आपके भेजे गए मैसेज स्थायी रूप से हटा दें। यह काम बैकग्राउंड में चलता है और पूरा होने पर आपको एक DM मिलेगा।" +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "अनुमति ओवरराइड जोड़ा गया" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "अनुमति ओवरराइड हटाया गया" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "अनुमति ओवरराइड अपडेट किया गया" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "अपग्रेड करने के लिए तैयार ह msgid "Real-time" msgstr "रीयलटाइम" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "वजह" @@ -26291,26 +27440,166 @@ msgstr "{oldLabel} रोल हटाया गया।" msgid "Removed roles." msgstr "रोल हटाए गए।" +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "AFK चैनल हटा दिया गया।" + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "अवतार हटा दिया गया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "चैनल को उसकी श्रेणी से हटा दिया गया।" +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "चैनल को श्रेणी {category} से हटा दिया गया।" + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "चैट एम्बेड बैकग्राउंड हटा दिया गया।" + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "कम्युनिटी बैनर हटा दिया गया।" + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "कम्युनिटी का आइकॉन हटा दिया गया।" + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "सामग्री चेतावनी टेक्स्ट हटा दिया गया।" + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "सामग्री चेतावनी हटा दी गई।" + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "कस्टम रोल आइकन हटा दिया गया।" + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "कस्टम चेतावनी टेक्स्ट हटा दिया गया।" + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "विवरण {text} हटा दिया गया।" + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "इनवाइट बैकग्राउंड हटा दिया गया।" + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "लिंक हटा दिया गया।" + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "सदस्य की कम्युनिटी प्रोफ़ाइल का एक्सेंट रंग हटा दिया गया।" + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "सदस्य की कम्युनिटी प्रोफ़ाइल का अवतार हटा दिया गया।" + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "सदस्य का कम्युनिटी प्रोफ़ाइल बैनर हटा दिया गया।" + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "सदस्य की कम्युनिटी प्रोफ़ाइल बायो हटा दिया गया।" + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "सदस्य की कम्युनिटी प्रोफ़ाइल से सर्वनाम हटा दिए गए।" + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "मैसेज हिस्ट्री थ्रेशोल्ड हटा दिया गया।" + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "उपनाम {nick} हटा दिया गया।" + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "{permissions} के लिए ओवरराइड हटा दिया गया।" + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "{role} रोल हटा दिया गया।" + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "रोल का रंग हटा दिया गया।" + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "रोल का आइकन हटा दिया गया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "नियमों वाला चैनल हटा दिया गया है।" +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "सिस्टम चैनल हटा दिया गया।" +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "टाइमआउट हटा दिया गया।" + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "विषय {text} हटा दिया गया।" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "यूनिकोड इमोजी हटा दिया गया।" +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "यूज़र सीमा हटा दी गई।" +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "वैनिटी यूआरएल {code} हटा दिया गया।" + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "{targetUserTag} से टाइमआउट हटा दिया गया" @@ -26381,6 +27670,11 @@ msgstr "स्टिकर का नाम बदलकर {0} कर दिय msgid "Renamed the channel to {0}." msgstr "चैनल का नाम बदलकर {0} कर दिया गया है।" +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "कम्युनिटी का नाम {oldName} से बदलकर {newName} कर दिया गया।" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "मॉडरेटर के लिए बैन, किक, टाइ msgid "Required" msgstr "ज़रूरी" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "मॉडरेशन ऐक्शन के लिए 2FA ज़रूरी कर दिया गया।" + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "स्पेसिंग रीसेट करें" msgid "Reset the connection limit." msgstr "कनेक्शन की सीमा रीसेट की गई।" +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "सदस्य सूची में रोल की स्थिति रीसेट कर दी गई।" + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "इस रोल को मेंशन करना सिर्फ़ msgid "Resubscribe" msgstr "फिर से सदस्यता लें" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "इनवाइट फिर से शुरू किए गए।" + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "साइन-इन पर वापस जाएँ" @@ -27330,6 +28639,11 @@ msgstr "यह इनवाइट रद्द करें? इसे पूर msgid "Revoked {0}." msgstr "{0} की अनुमति वापस ली गई।" +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "{permissions} रद्द कर दिए गए।" + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (दायाँ)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "दाएँ संरेखित" @@ -27408,7 +28724,7 @@ msgstr "रिंगटोन" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "रोल" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "रोल का रंग" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "रोल बनाया गया" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "रोल सफलतापूर्वक बन गया" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "रोल मिटाया गया" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "रोल का नाम ज़रूरी है" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "रोल अपडेट किया गया" @@ -28930,11 +30246,21 @@ msgstr "सेशन" msgid "Set {fieldNode} to {0}." msgstr "{fieldNode} को {0} पर सेट किया गया।" +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "कस्टम रोल आइकन सेट किया गया।" + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "कस्टम स्टेटस सेट करें" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "रोल के लिए सदस्य सूची में एक स्थान सेट किया गया।" + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "रोल का रंग <0>{hex} <1/> पर सेट किय msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "स्लोमोड को {0} {seconds, plural, one {सेकंड} other {सेकंड}} पर सेट किया गया।" +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "स्लोमोड {duration} पर सेट किया गया।" + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "स्टेटस सेट करें" msgid "Set the AFK channel to {0}." msgstr "AFK चैनल को {0} पर सेट किया गया।" +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "AFK चैनल को {channel} पर सेट किया गया।" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "AFK टाइमआउट को {0} सेकंड पर सेट किया गया।" +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "ऑडियो क्वालिटी को {kbps} kbps पर सेट किया गया।" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "चैनल के प्रकार को {0} पर सेट क msgid "Set the connection limit to {0}." msgstr "कनेक्शन सीमा को {0} पर सेट किया गया।" +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "सामग्री चेतावनी टेक्स्ट {text} पर सेट किया गया।" + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "कस्टम चेतावनी टेक्स्ट {text} पर सेट किया गया।" + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "विवरण {text} पर सेट किया गया।" + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "इनवाइट स्प्लैश अलाइनमेंट को {0} पर सेट किया गया।" +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "लिंक को {url} पर सेट किया गया।" + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "सदस्य की कम्युनिटी प्रोफ़ाइल का एक्सेंट रंग {color} पर सेट किया गया।" + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "सदस्य की कम्युनिटी प्रोफ़ाइल बायो को {text} पर सेट किया।" + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "सदस्य की कम्युनिटी प्रोफ़ाइल के सर्वनाम {text} पर सेट किए गए।" + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "मैसेज हिस्ट्री थ्रेशोल्ड {date} पर सेट किया गया।" + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "उपनाम {nick} पर सेट किया गया।" + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "क्लाइंट द्वारा प्रदर्शित सार्वजनिक उत्पाद का नाम, थीम रंग और इमेज एसेट सेट करें।" +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "रोल का रंग {color} पर सेट किया गया।" + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "रोल का आइकन {emoji} पर सेट किया गया।" + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "नियम चैनल को {0} पर सेट किया ग msgid "Set the system channel to {0}." msgstr "सिस्टम चैनल को {0} पर सेट किया गया।" +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "सिस्टम चैनल {channel} पर सेट किया गया।" + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "विषय को {text} पर सेट किया गया।" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "यूज़र सीमा को {0} पर सेट किया msgid "Set the vanity URL to {0}." msgstr "वैनिटी यूआरएल को {0} पर सेट किया गया।" +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "वैनिटी यूआरएल को {code} पर सेट किया गया।" + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "वॉइस क्षेत्र को {region} पर सेट किया गया।" + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "वॉइस क्षेत्र ऑटोमैटिक पर सेट किया गया।" + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "इस कम्युनिटी में अपना ग्लो msgid "Show your Visionary as a regular subscription instead" msgstr "अपनी विजनरी को सामान्य सदस्यता के तौर पर दिखाएँ" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "सदस्य सूची में इस रोल वाले सदस्यों को उनके अपने सेक्शन में दिखाया गया।" + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "आपका रिफंड जारी करते समय कुछ गड़बड़ हो गई। अगर ऐसा बार-बार होता है, तो सहायता टीम से संपर्क करें।" #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "गतिविधि लॉग लोड करते समय कुछ गड़बड़ हो गई।" @@ -31105,6 +32531,11 @@ msgstr "वॉइस कॉल शुरू करें" msgid "Start with computer" msgstr "कंप्यूटर के साथ शुरू करें" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "इस रोल वाले सदस्यों को अलग से दिखाना शुरू किया गया।" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "स्टिकर" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "स्टिकर को पर्याप्त कंप्रेस नहीं किया जा सका" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "स्टिकर बनाया गया" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "स्टिकर मिटाया गया" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "स्टिकर स्लॉट भरे हुए हैं" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "स्टिकर अपडेट किया गया" @@ -31412,6 +32843,46 @@ msgstr "स्ट्रीम देखना बंद करें" msgid "Stop." msgstr "रुकें।" +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "लचीले टेक्स्ट चैनल नामों की अनुमति देना बंद कर दिया।" + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "दूसरों को इस कम्युनिटी के इमोजी क्लोन करने की अनुमति देना बंद कर दिया गया।" + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "दूसरों को इस कम्युनिटी के स्टिकर क्लोन करने की अनुमति देना बंद कर दिया गया।" + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "इस रोल वाले सदस्यों को अलग से दिखाना बंद कर दिया गया।" + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "सिस्टम चैनल में शामिल होने वाले मैसेज छिपाना बंद कर दिया गया।" + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "कम्युनिटी मालिक का क्राउन छिपाना बंद कर दिया गया।" + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "मॉडरेशन ऐक्शन के लिए 2FA ज़रूरी करना बंद कर दिया गया।" + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "सदस्य को इस कम्युनिटी में दूसरों को सुनने से रोक दिया।" + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "श्रेणी के साथ सिंक करें" msgid "Syntax highlighting" msgstr "सिंटैक्स हाइलाइटिंग" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "सिस्टम" @@ -32449,6 +33922,16 @@ msgstr "ऐप क्रैश हो गया है। ऐसे अपडे msgid "The app should now be signed in to your account." msgstr "अब ऐप आपके अकाउंट में साइन इन हो जाना चाहिए।" +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "बैन {date} को पहले ही खत्म हो चुका था।" + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "बैन {date} को समाप्त होने वाला था।" + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "बॉट को <0>{destinationName} में जोड़ दिया गया है।" @@ -32491,6 +33974,11 @@ msgstr "डेस्कटॉप अपडेट डाउनलोड हो msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "डाउनलोड की गई फ़ाइल आपके कंप्यूटर पर सेव हो गई है। इसे अपने सामान्य पैकेज मैनेजर से इंस्टॉल करें।" +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "इमोजी {user} द्वारा अपलोड किया गया था।" + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "फ़ाइल में वह वेरिफ़िकेशन टोकन है जिसे हम <0>{dnsUrl} से फ़ेच करेंगे।" @@ -32504,6 +33992,51 @@ msgstr "आप जिस फ़ाइल को अपलोड करने क msgid "The following people can't be added to this group DM:" msgstr "इन लोगों को इस ग्रुप DM में नहीं जोड़ा जा सकता:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "इनवाइट {user} द्वारा {date} को बनाया गया था।" + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "इनवाइट {user} द्वारा बनाया गया था।" + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "इनवाइट {date} को बनाया गया था।" + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "इनवाइट का कभी उपयोग नहीं किया गया।" + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "इनवाइट {date} को समाप्त होने वाला था।" + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "इनवाइट को असीमित उपयोग की अनुमति देने के लिए सेट किया गया था।" + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "इनवाइट {duration} के बाद समाप्त होने के लिए सेट किया गया था।" + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "इनवाइट को अस्थायी सदस्यता देने के लिए सेट किया गया था।" + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "इनवाइट को कभी समाप्त न होने के लिए सेट किया गया था।" + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "आपकी कम्युनिटी के ज़्यादातर लोग जिस भाषा में बात करते हैं। डिस्कवरी के नतीजों को फ़िल्टर करने के लिए इस्तेमाल किया जाता है।" @@ -32518,6 +34051,11 @@ msgstr "लिंक अभी भी काम कर सकता है। msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "वयस्क सामग्री की जाँच रद्द कर दी गई। आप इस टैब को बंद करके ऐप से फिर से कोशिश कर सकते हैं।" +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "सदस्य अब अस्थायी नहीं है।" + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "नई कीमत {effectiveDate} के लिए पहले से msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "नया वॉइस चैनल <0>{channelLabel} से अनुमतियाँ, यूज़र सीमा और बिटरेट का फिर से इस्तेमाल करेगा।" +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "ओवरराइड ने {permissions} की अनुमति दी।" + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "ओवरराइड ने {permissions} को अस्वीकार कर दिया।" + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "आप जिस पेज को ढूंढ रहे हैं वह मौजूद नहीं है या उसे कहीं और ले जाया गया है।" @@ -32565,6 +34113,11 @@ msgstr "दिया गया redirect_uri इस ऐप्लिकेशन msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "दिए गए redirect_uri में HTTP या HTTPS का इस्तेमाल होना चाहिए।" +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "रोल ने {permissions} प्रदान कीं।" + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "स्टिकर को एनिमेटेड के तौर प msgid "The sticker was uploaded as static." msgstr "स्टिकर को स्टैटिक के तौर पर अपलोड किया गया था।" +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "स्टिकर {user} द्वारा अपलोड किया गया था।" + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "सिस्टम ने {target} को {role} रोल दिया।" + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "सिस्टम ने {role} रोल {target} से हटा दिया।" + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "यूज़रनेम <0>{fluxerTag} पहले से मौ msgid "The verification code is invalid or expired." msgstr "वेरिफ़िकेशन कोड अमान्य है या उसकी समय-सीमा खत्म हो गई है।" +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "वेबहुक {user} द्वारा बनाया गया था।" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "यह कार्ड आपके बिलिंग देश से मेल नहीं खाता है, इसलिए इसका उपयोग इस स्थानीय मुद्रा के लिए नहीं किया जा सकता है। कोई स्थानीय कार्ड इस्तेमाल करें, या {productName} पर वापस जाएं और कोई अन्य भुगतान विधि चुनें।" #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "इस श्रेणी में पहले से ही अधिकतम {maxChannelsPerCategory} चैनल हैं।" @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "कम्युनिटी में मॉडरेटर की कार्रवाइयों को ट्रैक करें।" @@ -33953,6 +35526,11 @@ msgstr "ग्रुप का स्वामित्व {userName} को ट msgid "Transfer ownership" msgstr "स्वामित्व ट्रांसफ़र करें" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "कम्युनिटी का स्वामित्व {user} को ट्रांसफ़र किया गया।" + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "स्ट्रीमिंग गोपनीयता चालू क msgid "Turn text smileys into emoji" msgstr "टेक्स्ट स्माइली को इमोजी में बदलें" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "वयस्क सामग्री बंद कर दी गई।" + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "स्लोमोड बंद कर दिया।" + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "सामग्री चेतावनी बंद कर दी गई।" + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "अलग बैनर बंद कर दिया।" + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "इस कम्युनिटी में सदस्य का माइक्रोफ़ोन बंद कर दिया।" + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "वयस्क सामग्री चालू की गई।" + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "सामग्री चेतावनी चालू की गई।" + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "अलग बैनर चालू किया।" + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "इस कम्युनिटी में सदस्य का माइक्रोफ़ोन वापस चालू कर दिया।" + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "स्कोप बंद करने से हो सकता है ऐप सही से काम न करे।" @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "यूक्रेनी" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "गतिविधि लॉग लोड नहीं हो पाए" @@ -34859,6 +36482,7 @@ msgstr "अज्ञात लक्ष्य" msgid "unknown user" msgstr "अज्ञात यूज़र" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "अज्ञात यूज़र" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "सिर्फ़ इस कम्युनिटी में इस #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "वरमोंट" msgid "Version" msgstr "वर्ज़न" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "बहुत ज़्यादा" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "वेबकैम" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "वेबहुक" @@ -37681,13 +39308,13 @@ msgstr "वेबहुक {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "वेबहुक बनाया गया" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "वेबहुक हटा दिया गया" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "वेबहुक का नाम" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "वेबहुक अपडेट किया गया" diff --git a/fluxer_app/src/features/i18n/locales/hr/messages.po b/fluxer_app/src/features/i18n/locales/hr/messages.po index c2529d701..f7cfe8a3e 100644 --- a/fluxer_app/src/features/i18n/locales/hr/messages.po +++ b/fluxer_app/src/features/i18n/locales/hr/messages.po @@ -56,6 +56,31 @@ msgstr "{a} tipka..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} i {c} tipkaju..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} je dodao/dodala nadjačavanje dopuštenja za {user} u {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} je dodao/dodala nadjačavanje dopuštenja za @everyone u {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} je dodao/dodala nadjačavanje dopuštenja za ulogu {role} u kanalu {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} je dodao naljepnicu." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} je dodao/dodala emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} je dodao dopuštenja kanala za {targetEntity} u {channelNode}." @@ -64,35 +89,200 @@ msgstr "{actor} je dodao dopuštenja kanala za {targetEntity} u {channelNode}." msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} je dodao dopuštenja kanala za {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} je dodao bota {target} kao privremenog člana." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} je dodao bota {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} je dodao bota {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} je dodao/dodala emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} je dodao emoji {namedTarget}." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} je dodao naljepnicu {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} je dodao naljepnicu {namedTarget}." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} je zabranio pristup korisniku {target} na {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} je zabranio pristup korisniku {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} je zabranio pristup korisniku {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} je korisniku {target} promijenio blokadu slanja poruka, reagiranja i pridruživanja glasovnim kanalima tako da završava {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} je promijenio nadimak za {target} iz {oldNick} u {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} je promijenio nadjačavanja dopuštenja kategorije {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} je promijenio nadjačavanja dopuštenja kanala {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} je promijenio nadjačavanja dopuštenja kanala s poveznicom {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} je promijenio nadjačavanja dopuštenja za tekstualni kanal {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} je promijenio nadjačavanja dopuštenja za glasovni kanal {channel}." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} je promijenio prilagođenu poveznicu iz {oldCode} u {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} je promijenio/la avatar svog profila zajednice." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} je promijenio/la banner svog profila zajednice." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} je promijenio/la biografiju svog profila zajednice u {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} je promijenio svoj nadimak iz {oldNick} u {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} je stvorio webhook." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} je stvorio kategoriju {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} je stvorio kanal {channel} u kategoriji {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} je stvorio kanal {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} je stvorio kanal {namedTarget}." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} je stvorio pozivnicu {code} za {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} je stvorio pozivnicu {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} je stvorio pozivnicu {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} je stvorio/stvorila kanal s poveznicom {channel} u kategoriji {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} je stvorio/stvorila kanal s poveznicom {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} je stvorio ulogu {namedTarget}." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} je stvorio ulogu {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} je stvorio tekstualni kanal {channel} u {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} je stvorio tekstualni kanal {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} je stvorio glasovni kanal {channel} u kategoriji {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} je stvorio glasovni kanal {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} je stvorio webhook {name} u kanalu {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} je stvorio webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} je stvorio webhook {namedTarget}." @@ -103,49 +293,209 @@ msgstr "{actor} je stvorio webhook {namedTarget}." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} je izbrisao {0} {bulkCount, plural, one {poruku} few {poruke} other {poruka}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} je izbrisao {count, plural, one {# poruku} few {# poruke} other {# poruka}} u {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} je izbrisao {count, plural, one {# poruku} few {# poruke} other {# poruka}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} je izbrisao poruku u {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} je izbrisao poruku." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} je izbrisao poruku{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} je izbrisao naljepnicu." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} je izbrisao webhook." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} je izbrisao emoji." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} je izbrisao više poruka{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} je izbrisao neke poruke u {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} je izbrisao neke poruke." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} je izbrisao kategoriju {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} je izbrisao kanal {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} je izbrisao kanal {namedTarget}." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} je izbrisao emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} je izbrisao emoji {namedTarget}." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} je izbrisao pozivnicu {code} za {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} je izbrisao pozivnicu {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} je izbrisao pozivnicu {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} je izbrisao kanal s poveznicom {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} je izbrisao ulogu {namedTarget}." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} je izbrisao ulogu {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} je izbrisao naljepnicu {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} je izbrisao naljepnicu {namedTarget}." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} je izbrisao tekstualni kanal {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} je izbrisao glasovni kanal {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} je izbrisao webhook {name} iz kanala {channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} je izbrisao webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} je izbrisao webhook {namedTarget}." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} je isključio {target} iz kanala {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} je isključio {target} s glasovnog kanala." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} je odspojio {targetMember} s glasovnog kanala." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} se isključio iz {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} se isključio/isključila s glasovnog poziva." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} je dodijelio ulogu {role} korisniku {target}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} je izbacio {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} je izbacio {targetMember}." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} je ponovno dopustio da {target} čuje druge u ovoj zajednici." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} je napravio promjenu koju ova verzija aplikacije ne može prikazati." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} je premjestio {target} iz kanala {oldChannel} u kanal {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} je premjestio {target} u {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} je premjestio {target} u drugi glasovni kanal." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} je premjestio {targetMember} u {channelNode}." @@ -154,16 +504,68 @@ msgstr "{actor} je premjestio {targetMember} u {channelNode}." msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} je premjestio {targetMember} u drugi glasovni kanal." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} se premjestio iz {oldChannel} u {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} je premjestio ulogu {role} niže na popisu članova." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} je premjestio ulogu {role} niže na popisu uloga." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} je pomaknuo ulogu {role} više na popisu članova." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} je pomaknuo ulogu {role} više na popisu uloga." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} se premjestio u {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} se premjestio u drugi glasovni kanal." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} je pauzirao pozivnice." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} je izvršio radnju nad {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} je prikvačio poruku u {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} je prikvačio poruku." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} je prikvačio poruku{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} je uklonio neaktivne članove." @@ -179,19 +581,249 @@ msgstr "{actor} je uklonio dopuštenja kanala za {targetEntity} u {channelNode}. msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} je uklonio dopuštenja kanala za {targetEntity}." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} je uklonio nadimak {nick} od korisnika {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} je uklonio nadjačavanje dopuštenja za {user} iz kanala {channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} je uklonio nadjačavanje dopuštenja za @everyone iz kanala {channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} je uklonio nadjačavanje dopuštenja za ulogu {role} iz kanala {channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} je uklonio ulogu {role} od {target}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} je uklonio/la privremenu zabranu za {target}." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} je uklonio prilagođenu poveznicu {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} je uklonio/uklonila boju naglaska sa svog profila zajednice." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} je uklonio/uklonila svoj avatar profila zajednice." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} je uklonio/uklonila banner svog profila zajednice." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} je uklonio/uklonila biografiju svog profila zajednice." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} je uklonio/uklonila zamjenice svog profila zajednice." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} je uklonio svoj nadimak {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} je preimenovao kategoriju {oldName} u {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} je preimenovao kanal {oldName} u {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} je preimenovao zajednicu iz {oldName} u {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} je preimenovao emoji {oldEmoji} u {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} je preimenovao kanal s poveznicom {oldName} u {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} je preimenovao ulogu {oldName} u {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} je preimenovao naljepnicu {oldName} u {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} je preimenovao tekstualni kanal {oldName} u {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} je preimenovao glasovni kanal {oldName} u {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} je preimenovao webhook {oldName} u {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} je poništio poziciju na popisu članova za ulogu {role}." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} je ponovno pokrenuo pozivnice." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} je postavio poziciju na popisu članova za ulogu {role}." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} je postavio nadimak za {target} na {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} je postavio/la prilagođenu vezu zajednice na {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} je postavio/la boju naglaska svog profila zajednice na {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} je postavio/la avatar za svoj profil u zajednici." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} je postavio/la banner svog profila zajednice." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} je postavio/la biografiju svog profila zajednice na {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} je postavio/la svoje zamjenice za profil zajednice na {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} je promijenio svoj nadimak u {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} je spriječio {target} da čuje druge u ovoj zajednici." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} je postavio/la vremensko ograničenje za {target} do {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} je prenio vlasništvo nad zajednicom na {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} je ponovno uključio mikrofon korisniku {target} u ovoj zajednici." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} je isključio mikrofon korisniku {target} u ovoj zajednici." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} je skinuo zabranu s korisnika {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} je ukinuo zabranu korisniku {targetMember}." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} je otkvačio poruku u {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} je otkvačio poruku." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} je otkvačio poruku{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} je ažurirao {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} je ažurirao {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} je ažurirao naljepnicu." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} je ažurirao webhook." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} je ažurirao emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} je ažurirao dopuštenja kanala za {targetEntity} u {channelNode}." @@ -204,35 +836,112 @@ msgstr "{actor} je ažurirao dopuštenja kanala za {targetEntity}." msgid "{actor} updated roles for {targetMember}." msgstr "{actor} je ažurirao uloge za {targetMember}." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} je ažurirao kategoriju {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} je ažurirao kanal {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} je ažurirao kanal {namedTarget}." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} je ažurirao postavke zajednice." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} je ažurirao/la emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} je ažurirao emoji {namedTarget}." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} je ažurirao pozivnicu {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} je ažurirao pozivnicu {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} je ažurirao kanal s poveznicom {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} je ažurirao nadjačavanje dopuštenja za {user} u kanalu {channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} je ažurirao nadjačavanje dopuštenja za @everyone u kanalu {channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} je ažurirao nadjačavanje dopuštenja za ulogu {role} u kanalu {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} je ažurirao ulogu {namedTarget}." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} je ažurirao ulogu {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} je ažurirao uloge za {target}." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} je ažurirao naljepnicu {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} je ažurirao naljepnicu {namedTarget}." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} je ažurirao tekstualni kanal {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} je ažurirao glasovni kanal {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} je ažurirao webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} je ažurirao webhook {namedTarget}." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} je ažurirao svoj profil zajednice." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# stavka} few {# stavke} other {# stavki}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# član} few {# člana} other {# članova}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# dopuštenje više} few {# dopuštenja više} other {# dopuštenja više}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# zajednička zajednica} few {# zajedničke zajednice} other {# zajedničkih zajednica}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {Prikaži # uređaj} few {Prikaži # uređaja} other msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Odjavi # uređaj} few {Odjavi # uređaja} other {Odjavi # uređaja}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {Pozivnica je bila ograničena na # korištenje.} few {Pozivnica je bila ograničena na # korištenja.} other {Pozivnica je bila ograničena na # korištenja.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {Pozivnica je iskorištena # put.} few {Pozivnica je iskorištena # puta.} other {Pozivnica je iskorištena # puta.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "Kanali zajednice {guildName}" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Aktivnost" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Evidencija aktivnosti" @@ -2713,10 +3437,60 @@ msgstr "Dodano {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "Dodano {length, plural, one {# referenca lokalne datoteke} few {# reference lokalnih datoteka} other {# referenci lokalnih datoteka}}." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "Dodana je pozadinska slika za chat ugradnju." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Dodan je banner zajednice." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Dodana je ikona zajednice." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "Dodano upozorenje o sadržaju s tekstom {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Dodano upozorenje o sadržaju." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "Dodan je avatar." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Dodana je pozadina pozivnice." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Dodijeljene uloge." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Dodan je avatar profila člana u zajednici." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Dodan je banner profila člana u zajednici." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "Dodana je uloga {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Kontrole poravnanja dostupne su samo na širim zaslonima" #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Sve <0/>, zauvijek. Bez naplate, bez obnova." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Sve radnje" @@ -3001,10 +3775,12 @@ msgstr "Svi jezici" msgid "All members" msgstr "Svi članovi" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "Cijelo razdoblje" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Svi korisnici" @@ -3197,6 +3973,16 @@ msgstr "Dopušteno {0} i uklonjeno dopuštenje za {1}." msgid "Allowed {0}." msgstr "Dopušteno {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "Dopušteno {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Dopušteno je svim članovima spominjanje ove uloge." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Dopušteni pozivatelji" @@ -3205,15 +3991,35 @@ msgstr "Dopušteni pozivatelji" msgid "Allowed everyone to mention this role." msgstr "Svima je dopušteno spominjati ovu ulogu." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Dopušteni fleksibilni nazivi tekstualnih kanala." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Dopuštena pozivanja" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Dopušteno drugima kloniranje emojija ove zajednice." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Dopušteno drugima kloniranje naljepnica ove zajednice." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Dopuštena preusmjeravanja" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Dopušteno do {count, plural, one {# veze} few {# veze} other {# veza}} po članu." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Zabrani pristup članovima" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Zabrani članovima pristup zajednici, s mogućnošću brisanja njihovih nedavnih poruka." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Razlog zabrane" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Blokiraj korisnika" msgid "Blocked" msgstr "Blokirano" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Članu je blokirano slanje poruka, reagiranje i pridruživanje glasovnim kanalima do {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Bot" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Bot dodan" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Kategorija izbrisana" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Kategorija je puna" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Sredina" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Centrirano" @@ -6298,11 +7116,183 @@ msgstr "Promijenite svoje korisničko ime" msgid "Changed nickname from {0} to {1}." msgstr "Promijenjen nadimak iz {0} u {1}." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Promijenjen je usporeni način rada s {oldDuration} na {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "Promijenjen je AFK kanal iz {oldChannel} u {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "Promijenjeno je vrijeme neaktivnosti s {oldDuration} na {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "Promijenjena kvaliteta zvuka s {oldKbps} kbps na {newKbps} kbps." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Promijenjen je avatar." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Promijenjena je brzina prijenosa na {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Blokada slanja poruka, reagiranja i pridruživanja glasovnim kanalima promijenjena je tako da završava {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Promijenjena je pozadina ugrađenog chata." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Promijenjen je banner zajednice." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Promijenjena je ikona zajednice." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "Promijenjen je broj veza po članu s {oldCount} na {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "Promijenjeno upozorenje o sadržaju iz {oldText} u {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Promijenjena je prilagođena ikona uloge." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Promijenjeno je prilagođeno upozorenje iz {oldText} u {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "Promijenjena je zadana postavka obavijesti iz {oldSetting} u {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Promijenjen je opis iz {oldText} u {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Promijenjen je filtar za eksplicitni sadržaj s {oldFilter} na {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Promijenjena je poravnatost pozadine pozivnice iz {oldAlignment} u {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Promijenjena pozadina pozivnice." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "Promijenjena je poveznica iz {oldUrl} u {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Promijenjen je avatar profila člana u zajednici." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Promijenjen je banner profila člana u zajednici." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "Promijenjena je biografija člana u zajednici na {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "Promijenjen je prag povijesti poruka s {oldDate} na {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "Promijenjeno ime iz {oldName} u {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "Promijenjen je nadimak iz {oldNick} u {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Promijenjena je boja uloge iz {oldColor} u {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Promijenjena je ikona uloge iz {oldEmoji} u {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "Promijenjen je sistemski kanal iz {oldChannel} u {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Promijenjena je tema iz {oldText} u {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "Promijenjeno je ograničenje korisnika s {oldCount} na {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "Promijenjena je prilagođena poveznica iz {oldCode} u {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Promijenjena je razina provjere s {oldLevel} na {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "Promijenjena je glasovna regija iz {oldRegion} u {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "kanal" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Kanal ili kategorija" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Nadjačavanje dopuštenja kanala dodano" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Nadjačavanje dopuštenja kanala uklonjeno" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Nadjačavanje dopuštenja kanala ažurirano" @@ -7815,7 +8805,7 @@ msgstr "Zajednice s više od 250 ljudi prisilno se prebacuju na postavku \"samo #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Izbrisati vaše poruke u ovom razgovoru?" msgid "Deleted" msgstr "Izbrisano" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "Izbrisana je povijest nedavnih poruka člana u trajanju od {duration}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Izbrisani tekst" msgid "Deleted your messages." msgstr "Poruke su izbrisane." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "izbrisana-kategorija" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "izbrisani-kanal" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "izbrisana-uloga" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "Odbijeno {0} i uklonjeno odbijanje za {1}." msgid "Denied {0}." msgstr "Odbijeno {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "Odbijeno {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Ugrađeni sadržaj je prikazan" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Kloniranje emojija omogućeno" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Emoji izrađen" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Emoji izbrisan" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Mjesta za emojije su popunjena" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Emoji ažuriran" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Filtriraj po datumu stvaranja računa" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Filtriraj po radnji" @@ -14572,18 +15587,22 @@ msgstr "Filtriraj po ulogama" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Filtriraj po korisniku" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Filtriraj sve članove" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Filtriraj članove bez uloga" @@ -15890,6 +16909,11 @@ msgstr "Dodijeljeno {0} i opozvano {1}." msgid "Granted {0}." msgstr "Dodijeljeno {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "Dodijeljena {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Bok, {username}! Nadamo se da ćeš uživati." msgid "Hey, {username}, welcome aboard!" msgstr "Hej, {username}, dobrodošao/la!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Sakrivene su poruke o pridruživanju u sistemskom kanalu." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Sakrivena kruna vlasnika zajednice." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Sakriti vlastitu kameru?" msgid "Hide your own screen share?" msgstr "Sakriti vlastito dijeljenje zaslona?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Visoka" @@ -17688,7 +18724,7 @@ msgstr "Pozovi" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "Kod pozivnice je {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Pozivnica izrađena" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Pozivnica izbrisana" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Pozivnica nedostupna" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Pozivnica ažurirana" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (lijevo)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Poravnato lijevo" @@ -18745,6 +19783,11 @@ msgstr "Neka čitači zaslona objavljuju nove poruke čim stignu u otvoreni kana msgid "Let the community self-moderate" msgstr "Neka se zajednica sama moderira" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Članu je ponovno omogućeno slušanje drugih u ovoj zajednici." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Omogućuje prilagođenom CSS-u da otkrije prozirna područja prozora nakon ponovnog pokretanja aplikacije za stolna računala." @@ -18815,6 +19858,16 @@ msgstr "Lajkano." msgid "Likes: <0>{countLabel}" msgstr "Sviđanja: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "Spominjanje ove uloge ograničeno je na članove s dopuštenjem za spominjanje bilo koje uloge." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Ograničeno na {count, plural, one {# korisnika} few {# korisnika} other {# korisnika}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Louisiana" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Niska" @@ -19204,6 +20259,11 @@ msgstr "macOS – zadani uređaj" msgid "macOS permissions" msgstr "Dopuštenja za macOS" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Kanal je postavljen da naslijedi postavku sadržaja za odrasle." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Emoji označen kao animiran." msgid "Marked emoji as static." msgstr "Emoji označen kao statičan." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Kanal je označen kao kanal sa sadržajem za odrasle." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Kanal je označen kao kanal bez sadržaja za odrasle." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "Član označen kao stalan." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Zaustavi reprodukciju" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Srednje" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Srednja veličina (zadano)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Član" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Radnje za člana {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Članu zabranjen pristup" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Član odspojen" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Član izbačen" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Popisi članova privremeno su nedostupni u ovoj zajednici" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Član premješten" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Član nije pronađen" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Uloge člana ažurirane" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Član od" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Članu ukinuta zabrana" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Član ažuriran" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Članovi se uklanjaju kada su izvan mreže, osim ako im nije dodijeljena uloga." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Članovi uklonjeni" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "Članovi bez dopuštenja {readMessageHistoryPermissionLabel} mogu vidjeti poruke poslane nakon ovog datuma." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Članovi, odabrano" @@ -20077,8 +21149,10 @@ msgstr "Poruke u kojima vas netko spomene prikazuju se ovdje {recentMentionsRete msgid "Mentions of you show up here for {retentionDays} days." msgstr "Poruke u kojima vas netko spomene prikazuju se ovdje {retentionDays} dana." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Samo spominjanja" @@ -20104,7 +21178,7 @@ msgstr "poruka" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Poruka" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Otklanjanje pogrešaka poruke" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Poruka izbrisana" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Popis poruka za {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Poruka prikvačena" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Vrijeme poruke" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Poruka otkvačena" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Poruke i mediji" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Poruke izbrisane" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Moderiranje" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Ovdje će se prikazivati radnje moderiranja i promjene zajednice." @@ -20915,16 +21989,51 @@ msgstr "Premjesti u" msgid "Move to…" msgstr "Premjesti u…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Premješteno iz {oldChannel} u {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Premješten kanal iz kategorije {oldCategory} u kategoriju {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Premješten kanal u kategoriju {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Premješten kanal u kategoriju {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "Premještena je uloga niže na popisu članova." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "Premještena je uloga niže na popisu uloga." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Uloga premještena na poziciju {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "Premještena je uloga više na popisu članova." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "Premještena je uloga više na popisu uloga." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Nova poruka" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Nove poruke" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "Nema referenciranih lokalnih datoteka" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Još nema zapisa" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "Razlog nije naveden" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "Razlog nije naveden." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Bez pretvorbe" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Bez pretvorbe" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "OAuth2 alat za izradu URL-ova" msgid "Objects" msgstr "Predmeti" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Predmeti" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Isključeno" @@ -23523,6 +24636,21 @@ msgstr "Učitavanje izvorne poruke nije uspjelo" msgid "Original message was deleted" msgstr "Izvorna poruka je izbrisana" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Zabranu je izvorno izdao {user} dana {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Zabranu je izvorno izdao {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Izvorno zabranjen(a) {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Pauzirano zbog smanjenog kretanja. Uključite za nastavak reprodukcije a msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "Pauzirano zbog smanjenog kretanja. Uključite za nastavak reprodukcije GIF-ova." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Pozivnice su pauzirane." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Trajno izbrišite svoj račun i sve povezane podatke. Ova se radnja ne m msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Trajno uklonite poruke koje ste poslali u izravnim porukama, grupnim izravnim porukama i zajednicama. Postupak se odvija u pozadini, a kada završi primit ćete izravnu poruku." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Dodano nadjačavanje dopuštenja" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Uklonjeno nadjačavanje dopuštenja" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Ažurirano nadjačavanje dopuštenja" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Spremni za nadogradnju?" msgid "Real-time" msgstr "Stvarno vrijeme" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Razlog" @@ -26291,26 +27440,166 @@ msgstr "Uklonjena uloga {oldLabel}." msgid "Removed roles." msgstr "Uklonjene uloge." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "Uklonjen AFK kanal." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Uklonjen avatar." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Uklonjen je kanal iz kategorije." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Uklonjen kanal iz kategorije {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Uklonjena je pozadina za ugrađene chat poruke." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "Uklonjen je banner zajednice." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Uklonjena je ikona zajednice." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "Uklonjen tekst upozorenja o sadržaju." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Uklonjeno upozorenje o sadržaju." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Uklonjena je prilagođena ikona uloge." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Uklonjen je prilagođeni tekst upozorenja." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Uklonjen je opis {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Uklonjena pozadina pozivnice." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Uklonjena je poveznica." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Uklonjena je boja naglaska profila člana u zajednici." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Uklonjen je avatar profila člana u zajednici." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Uklonjen je banner profila člana u zajednici." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Uklonjena je biografija člana u zajednici." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "Uklonjene su zamjenice člana u zajednici." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Uklonjen je prag povijesti poruka." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "Uklonjen je nadimak {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "Uklonjeno je nadjačavanje za {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "Uklonjena je uloga {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Uklonjena je boja uloge." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Uklonjena je ikona uloge." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Uklonjen je kanal s pravilima." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "Uklonjen je sistemski kanal." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "Uklonjeno je vremensko ograničenje." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "Uklonjena je tema {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Uklonjen je Unicode emoji." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Uklonjeno ograničenje broja korisnika." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "Uklonjen je prilagođeni URL {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Uklonjeno je vremensko ograničenje za {targetUserTag}" @@ -26381,6 +27670,11 @@ msgstr "Preimenovana naljepnica u {0}." msgid "Renamed the channel to {0}." msgstr "Preimenovan kanal u {0}." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Zajednica je preimenovana iz {oldName} u {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Zahtijevajte dvostruku provjeru autentičnosti za moderatore prije nego msgid "Required" msgstr "Obavezno" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "Zahtijevana je 2FA za radnje moderiranja." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Poništi razmak" msgid "Reset the connection limit." msgstr "Ograničenje veza je poništeno." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "Poništena je pozicija na popisu članova za ulogu." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Spominjanje ove uloge ograničeno je na članove s potrebnim dopuštenje msgid "Resubscribe" msgstr "Ponovno se pretplati" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Pozivnice su ponovno pokrenute." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Povratak na prijavu" @@ -27330,6 +28639,11 @@ msgstr "Opozvati ovu pozivnicu? Ne može se poništiti." msgid "Revoked {0}." msgstr "Opozvano {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "Oduzeta {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (desno)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Poravnato desno" @@ -27408,7 +28724,7 @@ msgstr "Melodija zvona" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Uloga" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Boja uloge" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Uloga stvorena" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Uloga je uspješno stvorena" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Uloga izbrisana" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "Naziv uloge je obavezan" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Uloga ažurirana" @@ -28930,11 +30246,21 @@ msgstr "Sesije" msgid "Set {fieldNode} to {0}." msgstr "Postavljeno {fieldNode} na {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Postavljena je prilagođena ikona uloge." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Postavi prilagođeni status" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Postavljena je pozicija na popisu članova za ulogu." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "Boja uloge postavljena je na <0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "Usporeni način rada postavljen je na {0} {seconds, plural, one {sekundu} few {sekunde} other {sekundi}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Usporeni način rada postavljen je na {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Postavi status" msgid "Set the AFK channel to {0}." msgstr "AFK kanal postavljen je na {0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "Postavljen je AFK kanal na {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "Vrijeme neaktivnosti u sekundama postavljeno je na {0}." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "Postavljena je kvaliteta zvuka na {kbps} kbps." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "Vrsta kanala postavljena je na {0}." msgid "Set the connection limit to {0}." msgstr "Ograničenje veza postavljeno je na {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "Postavljen je tekst upozorenja o sadržaju na {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "Postavljen je prilagođeni tekst upozorenja na {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "Postavljen je opis na {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "Poravnanje pozadinske slike pozivnice postavljeno je na {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "Postavljena je poveznica na {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "Postavljena je boja naglaska profila člana u zajednici na {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "Postavljena je biografija člana u zajednici na {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "Postavljene su zamjenice člana u zajednici na {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "Postavljen je prag povijesti poruka na {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "Postavljen je nadimak na {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Postavite javni naziv proizvoda, boju teme i slikovne datoteke koje klijenti prikazuju." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "Postavljena je boja uloge na {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "Postavljena je ikona uloge na {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "Kanal s pravilima postavljen je na {0}." msgid "Set the system channel to {0}." msgstr "Sistemski kanal postavljen je na {0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "Postavljen je sistemski kanal na {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "Postavljena je tema na {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "Ograničenje broja korisnika postavljeno je na {0}." msgid "Set the vanity URL to {0}." msgstr "Prilagođeni URL postavljen je na {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "Postavljen je prilagođeni URL na {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "Postavljena je glasovna regija na {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "Postavljena je glasovna regija na automatsku." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Prikaži naslovnu sliku svog globalnog profila u ovoj zajednici" msgid "Show your Visionary as a regular subscription instead" msgstr "Prikaži svoj Visionary kao običnu pretplatu" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Članovi s ovom ulogom prikazani su u zasebnom odjeljku na popisu članova." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Nešto je pošlo po zlu prilikom obrade vašeg povrata novca. Obratite se podršci ako se ovo nastavi događati." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Došlo je do pogreške pri učitavanju evidencije aktivnosti." @@ -31105,6 +32531,11 @@ msgstr "Započni glasovni poziv" msgid "Start with computer" msgstr "Pokreni s računalom" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "Članovi s ovom ulogom počeli su se prikazivati odvojeno." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "naljepnica" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "Naljepnica se nije mogla dovoljno komprimirati" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Naljepnica izrađena" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Naljepnica izbrisana" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Mjesta za naljepnice su popunjena" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Naljepnica ažurirana" @@ -31412,6 +32843,46 @@ msgstr "Zaustavi gledanje prijenosa" msgid "Stop." msgstr "Stanite." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Zaustavljeno dopuštanje fleksibilnih naziva tekstualnih kanala." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Zaustavljeno dopuštanje drugima da kloniraju emojije ove zajednice." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Zaustavljeno dopuštanje drugima da kloniraju naljepnice ove zajednice." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Članovi s ovom ulogom više se ne prikazuju odvojeno." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Zaustavljeno je skrivanje poruka o pridruživanju u sistemskom kanalu." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Sakrivanje krune vlasnika zajednice je zaustavljeno." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "2FA se više ne zahtijeva za radnje moderiranja." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Članu je onemogućeno slušanje drugih u ovoj zajednici." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Sinkroniziraj s kategorijom" msgid "Syntax highlighting" msgstr "Isticanje sintakse" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "Sustav" @@ -32449,6 +33922,16 @@ msgstr "Aplikacija se srušila. Provjeravamo ima li ažuriranja koja bi mogla ri msgid "The app should now be signed in to your account." msgstr "Aplikacija bi sada trebala biti prijavljena na vaš račun." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "Zabrana je već istekla {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "Zabrana je trebala isteći {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "Bot je dodan u <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "Ažuriranje za stolno računalo je preuzeto. Ponovno pokrenite {productN msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "Preuzeta datoteka sprema se na vaše računalo. Instalirajte je pomoću uobičajenog upravitelja paketa." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "Emoji je prenio/la {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "Datoteka sadrži token za provjeru koji ćemo preuzeti s <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "Datoteka koju pokušavate učitati premašuje maksimalnu veličinu od {m msgid "The following people can't be added to this group DM:" msgstr "Sljedeće osobe nije moguće dodati u ovu grupnu izravnu poruku:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "Pozivnicu je stvorio {user} dana {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "Pozivnicu je stvorio {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "Pozivnica je stvorena {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "Pozivnica nikada nije korištena." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "Pozivnica je trebala isteći {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "Pozivnica je postavljena da dopušta neograničen broj korištenja." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "Pozivnica je postavljena da istekne nakon {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "Pozivnica je postavljena da dodijeli privremeno članstvo." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "Pozivnica je postavljena da nikada ne istekne." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "Jezik kojim govori većina vaše zajednice. Koristi se za filtriranje rezultata Otkrivanja." @@ -32518,6 +34051,11 @@ msgstr "Poveznica možda i dalje radi. Pokušajte ponovno za trenutak." msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "Provjera sadržaja za odrasle otkazana je. Možete zatvoriti ovu karticu i pokušati ponovno iz aplikacije." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "Član više nije privremen." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "Nova cijena već je zakazana za {effectiveDate}." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "Novi glasovni kanal ponovno će koristiti dopuštenja, ograničenje broja korisnika i brzinu prijenosa iz <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "Nadjačavanje je dopuštalo {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "Nadjačavanje je odbilo {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "Stranica koju tražite ne postoji ili je premještena." @@ -32565,6 +34113,11 @@ msgstr "Navedeni redirect_uri nije registriran za ovu aplikaciju." msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "Navedeni redirect_uri mora koristiti HTTP ili HTTPS." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "Uloga je dodijelila {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "Naljepnica je prenesena kao animirana." msgid "The sticker was uploaded as static." msgstr "Naljepnica je prenesena kao statična." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "Naljepnicu je prenio/la {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "Sustav je dodijelio ulogu {role} korisniku {target}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "Sustav je uklonio ulogu {role} korisniku {target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "Korisničko ime <0>{fluxerTag} već je zauzeto. Nastavkom će se va msgid "The verification code is invalid or expired." msgstr "Kod za provjeru nije važeći ili je istekao." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "Webhook je stvorio {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Ova se kartica ne podudara s vašom zemljom naplate, stoga se ne može koristiti za ovu lokaliziranu valutu. Upotrijebite lokalnu karticu ili se vratite na {productName} i odaberite drugi način plaćanja." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "Ova kategorija već sadrži maksimalan broj od {maxChannelsPerCategory} kanala." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Pratite radnje moderatora u cijeloj zajednici." @@ -33953,6 +35526,11 @@ msgstr "Želite li prenijeti vlasništvo grupe na {userName}?" msgid "Transfer ownership" msgstr "Prijenos vlasništva" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Vlasništvo nad zajednicom preneseno je na {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Uključi privatnost prijenosa" msgid "Turn text smileys into emoji" msgstr "Pretvori tekstualne smajliće u emoji" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Isključen je sadržaj za odrasle." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Isključen je usporeni način rada." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "Isključeno je upozorenje o sadržaju." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Isključen je odvojeni natpis." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Isključen je mikrofon člana u ovoj zajednici." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Uključen je sadržaj za odrasle." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "Uključeno je upozorenje o sadržaju." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Uključen je odvojeni natpis." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "Ponovno je uključen mikrofon člana u ovoj zajednici." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Isključivanje opsega može spriječiti ispravan rad aplikacije." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "Ukrajinski" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Nije moguće učitati evidenciju aktivnosti" @@ -34859,6 +36482,7 @@ msgstr "Nepoznata meta" msgid "unknown user" msgstr "nepoznat korisnik" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "nepoznat korisnik" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Koristi se samo u ovoj zajednici." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Vermont" msgid "Version" msgstr "Verzija" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Vrlo visoka" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Web-kamera" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Webhook izrađen" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhook izbrisan" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Naziv webhooka" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhook ažuriran" diff --git a/fluxer_app/src/features/i18n/locales/hu/messages.po b/fluxer_app/src/features/i18n/locales/hu/messages.po index c90507039..0a5696d6f 100644 --- a/fluxer_app/src/features/i18n/locales/hu/messages.po +++ b/fluxer_app/src/features/i18n/locales/hu/messages.po @@ -56,6 +56,31 @@ msgstr "{a} épp ír…" msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} és {c} épp ír..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} engedélyfelülbírálatot adott hozzá {user} számára a(z) {channel} csatornában." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} engedélyfelülbírálatot adott hozzá a(z) @everyone szerepkörhöz a(z) {channel} csatornában." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} engedélyfelülbírálatot adott hozzá a(z) {role} szerepkörhöz a(z) {channel} csatornában." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} matricát adott hozzá." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} hozzáadott egy emojit." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} csatornajogosultságokat adott hozzá {targetEntity} számára a(z) {channelNode} csatornában." @@ -64,35 +89,200 @@ msgstr "{actor} csatornajogosultságokat adott hozzá {targetEntity} számára a msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} csatornajogosultságokat adott hozzá ehhez: {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} ideiglenes tagként adta hozzá a(z) {target} botot." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} hozzáadta a(z) {target} botot." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} hozzáadta a(z) {targetMember} botot." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} hozzáadta a(z) {emoji} emojit." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} hozzáadta a(z) {namedTarget} emojit." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} hozzáadta a(z) {name} matricát." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} hozzáadta a(z) „{namedTarget}” matricát." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} kitiltotta {target} tagot {duration} időre." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} kitiltotta {target} tagot." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} kitiltotta {targetMember} felhasználót." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} módosította {target} esetében az üzenetküldés, a reakciók és a hangcsatornákhoz való csatlakozás tiltásának végét erre: {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} megváltoztatta a(z) {target} becenevét erről: {oldNick} erre: {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} módosította a(z) {channel} kategória engedélyfelülbírálatait." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} módosította a(z) {channel} csatorna engedélyfelülbírálatait." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} módosította a(z) {channel} linkcsatorna engedélyfelülbírálatait." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} módosította a(z) {channel} szöveges csatorna engedélyfelülbírálatait." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} módosította a(z) {channel} hangcsatorna engedélyfelülbírálatait." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} megváltoztatta az egyéni meghívólinket erről: {oldCode} erre: {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} módosította a közösségi profilképét." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} módosította a közösségi profiljának borítóképét." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} módosította a közösségi profiljának bemutatkozását erre: {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} megváltoztatta a becenevét erről: {oldNick} erre: {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} létrehozott egy webhookot." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} létrehozta a(z) {channel} kategóriát." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} létrehozta a(z) {channel} csatornát a(z) {category} kategóriában." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} létrehozta a(z) {channel} csatornát." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} létrehozta a(z) „{namedTarget}” csatornát." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} létrehozta a(z) {code} meghívót a(z) {channel} csatornához." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} létrehozta a(z) {code} meghívót." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} létrehozta a(z) {namedTarget} meghívót{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} létrehozta a(z) {channel} linkcsatornát a(z) {category} kategóriában." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} létrehozta a(z) {channel} linkcsatornát." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} létrehozta a(z) „{namedTarget}” szerepkört." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} létrehozta a(z) {role} szerepkört." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} létrehozta a(z) {channel} szöveges csatornát a(z) {category} kategóriában." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} létrehozta a(z) {channel} szöveges csatornát." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} létrehozta a(z) {channel} hangcsatornát a(z) {category} kategóriában." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} létrehozta a(z) {channel} hangcsatornát." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} létrehozta a(z) {name} nevű webhookot a(z) {channel} csatornában." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} létrehozta a(z) {name} nevű webhookot." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} létrehozta a(z) „{namedTarget}” webhookot." @@ -103,49 +293,209 @@ msgstr "{actor} létrehozta a(z) „{namedTarget}” webhookot." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} törölt {0} {bulkCount, plural, one {üzenetet} other {üzenetet}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} törölt {count, plural, one {# üzenetet} other {# üzenetet}} a következő helyen: {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} törölt {count, plural, one {# üzenetet} other {# üzenetet}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} törölt egy üzenetet a(z) {channel} csatornában." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} törölt egy üzenetet." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} törölt egy üzenetet{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} törölt egy matricát." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} törölt egy webhookot." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} törölt egy emojit." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} több üzenetet törölt{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} törölt néhány üzenetet itt: {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} törölt néhány üzenetet." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} törölte a(z) {channel} kategóriát." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} törölte a(z) {channel} csatornát." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} törölte a(z) „{namedTarget}” csatornát." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} törölte a(z) {emoji} emojit." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} törölte a(z) {namedTarget} emojit." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} törölte a(z) {code} meghívót a(z) {channel} csatornához." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} törölte a(z) {code} meghívót." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} törölte a(z) {namedTarget} meghívót{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} törölte a(z) {channel} linkcsatornát." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} törölte a(z) {namedTarget} szerepkört." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} törölte a(z) {role} szerepkört." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} törölte a matricát: {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} törölte a(z) „{namedTarget}” matricát." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} törölte a(z) {channel} szöveges csatornát." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} törölte a(z) {channel} hangcsatornát." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} törölte a(z) {name} webhookot a(z) {channel} csatornából." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} törölte a(z) {name} nevű webhookot." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} törölte a(z) {namedTarget} webhookot." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} leválasztotta {target} tagot a(z) {channel} csatornáról." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} leválasztotta {target} tagot a hangcsatornáról." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} leválasztotta {targetMember} felhasználót a hangcsatornáról." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} kilépett innen: {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} kilépett a hangcsatornából." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} a(z) {target} felhasználónak adta a(z) {role} szerepkört." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} kirúgta {target} tagot." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} kirúgta {targetMember} felhasználót." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} ismét engedélyezte, hogy {target} hallja a többieket ebben a közösségben." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} végrehajtott egy olyan módosítást, amelyet az alkalmazás jelenlegi verziója nem tud megjeleníteni." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} áthelyezte {target} tagot a(z) {oldChannel} csatornából a(z) {newChannel} csatornába." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} áthelyezte {target} tagot ide: {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} áthelyezte {target} tagot egy másik hangcsatornába." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} áthelyezte {targetMember} felhasználót a(z) {channelNode} csatornára." @@ -154,16 +504,68 @@ msgstr "{actor} áthelyezte {targetMember} felhasználót a(z) {channelNode} csa msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} áthelyezte {targetMember} felhasználót egy másik hangcsatornára." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} átlépett innen: {oldChannel} ide: {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} lejjebb helyezte a(z) {role} szerepkört a taglistában." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} lejjebb helyezte a(z) {role} szerepkört a szerepkörlistában." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} feljebb helyezte a(z) {role} szerepkört a taglistában." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} feljebb helyezte a(z) {role} szerepkört a szerepkörlistában." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} átlépett ide: {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} átlépett egy másik hangcsatornába." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} szüneteltette a meghívókat." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} műveletet hajtott végre a(z) {targetEntity} elemen." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} rögzített egy üzenetet itt: {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} rögzített egy üzenetet." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} rögzített egy üzenetet{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} eltávolította az inaktív tagokat." @@ -179,19 +581,249 @@ msgstr "{actor} eltávolította a(z) {targetEntity} csatornajogosultságait a(z) msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} eltávolította a(z) {targetEntity} csatornajogosultságait." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} eltávolította a(z) {nick} becenevet erről: {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} eltávolította a(z) {user} engedélyfelülbírálatát a(z) {channel} csatornából." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} eltávolította a(z) @everyone szerepkör engedélyfelülbírálatát a(z) {channel} csatornából." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} eltávolította a(z) {role} szerepkör engedélyfelülbírálatát a(z) {channel} csatornából." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} eltávolította a(z) {role} szerepkört {target} felhasználótól." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} feloldotta {target} tag ideiglenes korlátozását." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} eltávolította a(z) {code} egyéni meghívólinket." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} eltávolította a közösségi profiljának kiemelőszínét." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} eltávolította a közösségi profilképét." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} eltávolította a közösségi profiljának borítóképét." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} eltávolította a közösségi profiljának bemutatkozását." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} eltávolította a közösségi profiljából a névmásokat." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} eltávolította a becenevét: {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} átnevezte a(z) {oldName} kategóriát erre: {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} átnevezte a(z) {oldName} csatornát erre: {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} átnevezte a közösséget erről: {oldName} erre: {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} átnevezte a(z) {oldEmoji} emojit erre: {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} átnevezte a(z) {oldName} linkcsatornát erre: {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} átnevezte a(z) {oldName} szerepkört erre: {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} átnevezte a(z) {oldName} matricát erre: {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} átnevezte a(z) {oldName} szöveges csatornát erre: {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} átnevezte a(z) {oldName} hangcsatornát erre: {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} átnevezte a(z) {oldName} webhookot erre: {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} visszaállította a(z) {role} szerepkör taglistabeli pozícióját." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} újra engedélyezte a meghívókat." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} beállította a(z) {role} szerepkör taglistabeli pozícióját." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} beállította a(z) {target} becenevét erre: {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} beállította az egyéni meghívólinket erre: {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} beállította a közösségi profiljának kiemelőszínét erre: {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} beállította a közösségi profilképét." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} beállította a közösségi profiljának borítóképét." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} beállította a közösségi profiljának bemutatkozását erre: {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} beállította a közösségi profiljának névmásait erre: {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} beállította a becenevét erre: {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} megakadályozta, hogy {target} hallja a többieket ebben a közösségben." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} ideiglenes korlátozás alá helyezte {target} tagot eddig: {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} átadta a közösség tulajdonjogát {user} számára." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} visszakapcsolta {target} mikrofonját ebben a közösségben." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} kikapcsolta {target} mikrofonját ebben a közösségben." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} feloldotta {target} kitiltását." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} feloldotta {targetMember} kitiltását." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} feloldott egy üzenet rögzítését itt: {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} feloldott egy üzenet rögzítését." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} visszavonta egy üzenet rögzítését{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} frissítette: {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} frissítette a(z) {targetMember} adatait." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} frissítette a matricát." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} frissítette a webhookot." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} szerkesztett egy emojit." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} frissítette a(z) {targetEntity} csatornajogosultságait a(z) {channelNode} csatornában." @@ -204,35 +836,112 @@ msgstr "{actor} frissítette a(z) {targetEntity} csatornajogosultságait." msgid "{actor} updated roles for {targetMember}." msgstr "{actor} frissítette a(z) {targetMember} szerepköreit." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} frissítette a(z) {channel} kategóriát." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} frissítette a(z) {channel} csatornát." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} frissítette a(z) {namedTarget} csatornát." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} frissítette a közösségi beállításokat." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} frissítette a(z) {emoji} emojit." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} frissítette a(z) {namedTarget} emojit." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} frissítette a(z) {code} meghívót." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} frissítette a(z) {namedTarget} meghívót{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} frissítette a(z) {channel} linkcsatornát." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} módosította a(z) {user} engedélyfelülbírálatát a(z) {channel} csatornában." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} módosította a(z) @everyone szerepkör engedélyfelülbírálatát a(z) {channel} csatornában." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} módosította a(z) {role} szerepkör engedélyfelülbírálatát a(z) {channel} csatornában." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} frissítette a(z) {namedTarget} szerepkört." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} módosította a(z) {role} szerepkört." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} frissítette {target} szerepköreit." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} frissítette a(z) {name} matricát." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} frissítette a(z) „{namedTarget}” matricát." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} módosította a(z) {channel} szöveges csatornát." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} frissítette a(z) {channel} hangcsatornát." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} frissítette a(z) {name} webhookot." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} frissítette a(z) {namedTarget} webhookot." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} frissítette a közösségi profilját." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# elem} other {# elem}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# tag} other {# tag}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# további jogosultság} other {# további jogosultság}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# közös közösség} other {# közös közösség}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {# eszköz megjelenítése} other {# eszköz megjele msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Kijelentkezés # eszközről} other {Kijelentkezés # eszközről}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {A meghívó # használatra volt korlátozva.} other {A meghívó # használatra volt korlátozva.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {A meghívót # alkalommal használták.} other {A meghívót # alkalommal használták.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "{guildName} csatornái" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Tevékenység" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Tevékenységnapló" @@ -2713,10 +3437,60 @@ msgstr "Hozzáadva: {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "{length, plural, one {# helyi fájlhivatkozás hozzáadva} other {# helyi fájlhivatkozás hozzáadva}}." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "Hozzáadott egy csevegésbe ágyazott hátteret." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Közösségi banner hozzáadva." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Közösségi ikon lett hozzáadva." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "Tartalomfigyelmeztetést adott hozzá a következő szöveggel: {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Tartalomfigyelmeztetést adott hozzá." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "Hozzáadott egy profilképet." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Hozzáadott egy meghívóhátteret." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Szerepkörök hozzáadva." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Hozzáadta a tag közösségi profilképét." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Hozzáadta a tag közösségi profiljának borítóképét." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "Hozzáadva a(z) {role} szerepkör." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Az igazítási vezérlők csak szélesebb képernyőkön érhetők el" #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Az <0/> teljes köre, örökre. Nincs számlázás, nincs megújítás." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Minden művelet" @@ -3001,10 +3775,12 @@ msgstr "Összes nyelv" msgid "All members" msgstr "Összes tag" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "Teljes időszak" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Minden felhasználó" @@ -3197,6 +3973,16 @@ msgstr "Engedélyezve: {0}. Engedélyezés visszavonva: {1}." msgid "Allowed {0}." msgstr "Engedélyezve: {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "Engedélyezve: {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Engedélyezte, hogy minden tag megemlítse ezt a szerepkört." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Engedélyezett hívók" @@ -3205,15 +3991,35 @@ msgstr "Engedélyezett hívók" msgid "Allowed everyone to mention this role." msgstr "Mindenki számára engedélyezve lett ennek a szerepkörnek az említése." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Engedélyezte a rugalmas szöveges csatornaneveket." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Engedélyezett meghívások" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Engedélyezte, hogy mások lemásolják ennek a közösségnek az emojijait." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Engedélyezte, hogy mások lemásolják ennek a közösségnek a matricáit." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Engedélyezett átirányítások" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Legfeljebb {count, plural, one {# kapcsolatot} other {# kapcsolatot}} engedélyezett tagonként." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Tagok kitiltása" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Tagok kitiltása a közösségből, a legutóbbi üzeneteik törlésének lehetőségével." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Kitiltás oka" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Felhasználó letiltása" msgid "Blocked" msgstr "Letiltva" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Megakadályozta, hogy a tag üzeneteket küldjön, reakciókat adjon és hangcsatornákhoz csatlakozzon a következő időpontig: {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Bot" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Bot hozzáadva" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Kategória törölve" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Kategória megtelt" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Középre" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Középre igazítva" @@ -6298,11 +7116,183 @@ msgstr "Felhasználónév módosítása" msgid "Changed nickname from {0} to {1}." msgstr "Becenév megváltoztatva: {0} erre: {1}." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Lassú mód módosítva erről: {oldDuration} erre: {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "Az AFK csatorna át lett állítva erről: {oldChannel} erre: {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "Az AFK-időkorlát módosítva erről: {oldDuration} erre: {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "A hangminőség {oldKbps} kbps-ról {newKbps} kbps-ra változott." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Megváltoztatta a profilképet." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Bitráta megváltoztatva: {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Megváltoztatta az üzenetküldés, a reakciók és a hangcsatornákhoz való csatlakozás tiltásának végét erre: {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Megváltoztatta a csevegésbe ágyazott hátteret." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Módosította a közösség bannerét." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Megváltoztatta a közösség ikonját." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "A tagonkénti kapcsolódások száma {oldCount}-ról {newCount}-ra változott." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "Megváltoztatta a tartalomra figyelmeztető szöveget erről: {oldText} erre: {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Megváltoztatta az egyéni szerepkör ikonját." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Megváltoztatta az egyéni figyelmeztetés szövegét erről: {oldText} erre: {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "Megváltoztatta az alapértelmezett értesítési beállítást erről: {oldSetting} erre: {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Megváltoztatta a leírást erről: {oldText} erre: {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Megváltoztatta az explicittartalom-szűrőt erről: {oldFilter} erre: {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Meghívó háttér igazítása megváltozott: {oldAlignment} helyett {newAlignment} lett." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Megváltoztatta a meghívó hátterét." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "Módosítva a hivatkozás innen: {oldUrl} ide: {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Megváltoztatta a tag közösségi profilképét." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Megváltoztatta a tag közösségi profiljának borítóképét." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "A tag közösségi profiljának bemutatkozását erre módosította: {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "Megváltoztatta az üzenettörténet küszöbértékét erről: {oldDate} erre: {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "Megváltoztatta a nevét erről: {oldName} erre: {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "Megváltoztatta a becenevet erről: {oldNick} erre: {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Megváltoztatta a szerepkör színét erről: {oldColor} erre: {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Megváltoztatta a szerepkör ikonját erről: {oldEmoji} erre: {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "A rendszercsatorna átkerült innen: {oldChannel} ide: {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Megváltoztatta a témát erről: {oldText} erre: {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "Megváltoztatta a felhasználói limitet erről: {oldCount} erre: {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "Megváltoztatta az egyéni meghívólinket erről: {oldCode} erre: {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Megváltoztatta az ellenőrzési szintet erről: {oldLevel} erre: {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "A hangcsatorna régiója megváltozott erről: {oldRegion} erre: {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "csatorna" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Csatorna vagy kategória" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Egyéni csatornajogosultságok hozzáadva" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Egyéni csatornajogosultságok eltávolítva" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Egyéni csatornajogosultságok frissítve" @@ -7815,7 +8805,7 @@ msgstr "A 250 főnél nagyobb közösségekben kötelező a „Csak említések #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Törlöd az üzeneteidet ebből a beszélgetésből?" msgid "Deleted" msgstr "Törölve" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "Törölte a tag legutóbbi üzeneteit az elmúlt {duration} időszakból." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Törölt szöveg" msgid "Deleted your messages." msgstr "Üzeneteid törölve." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "törölt-kategória" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "törölt-csatorna" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "törölt-szerepkör" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "Megtagadva: {0}. Megtagadás visszavonva: {1}." msgid "Denied {0}." msgstr "{0} megtagadva." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "Megtagadva: {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Beágyazott tartalmak elrejtése feloldva" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Emoji másolása engedélyezve" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Emoji létrehozva" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Emoji törölve" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Az emojihelyek beteltek" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Emoji frissítve" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Szűrés fióklétrehozás dátuma szerint" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Szűrés művelet szerint" @@ -14572,18 +15587,22 @@ msgstr "Szűrés szerepkörök szerint" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Szűrés felhasználó szerint" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Minden tag üzeneteinek szűrése" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Szerepkör nélküli tagok üzeneteinek szűrése" @@ -15890,6 +16909,11 @@ msgstr "{0} megadva, {1} visszavonva." msgid "Granted {0}." msgstr "Megadva: {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "Megadva: {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Szia, {username}! Reméljük, jól érzed magad nálunk." msgid "Hey, {username}, welcome aboard!" msgstr "Szia, {username}, üdv a fedélzeten!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Csatlakozási üzenetek elrejtése a rendszercsatornában." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Elrejtette a közösség tulajdonosának koronáját." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Elrejted a saját kamerádat?" msgid "Hide your own screen share?" msgstr "Elrejted a saját képernyőmegosztásodat?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Magas" @@ -17688,7 +18724,7 @@ msgstr "Meghívás" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "A meghívókód: {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Meghívó létrehozva" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Meghívó törölve" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Meghívó nem elérhető" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Meghívó frissítve" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (bal)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Balra igazítva" @@ -18745,6 +19783,11 @@ msgstr "A képernyőolvasók felolvassák az új üzeneteket, amint azok megérk msgid "Let the community self-moderate" msgstr "Engedd, hogy a közösség önmagát moderálja" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Ismét engedélyezte, hogy a tag hallja a többieket ebben a közösségben." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Az egyéni CSS lehetővé teszi az átlátszó ablakrégiók megjelenítését az asztali alkalmazás újraindítása után." @@ -18815,6 +19858,16 @@ msgstr "Kedvelve." msgid "Likes: <0>{countLabel}" msgstr "Kedvelések: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "A szerepkör említését azokra a tagokra korlátozta, akik bármely szerepkört megemlíthetnek." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "A csatorna korlátozva lett {count, plural, one {# felhasználóra} other {# felhasználóra}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Louisiana" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Alacsony" @@ -19204,6 +20259,11 @@ msgstr "macOS alapértelmezett" msgid "macOS permissions" msgstr "macOS-engedélyek" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Beállította, hogy a csatorna örökölje a felnőtt tartalomra vonatkozó beállítást." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Az emojit animáltként jelölte meg." msgid "Marked emoji as static." msgstr "Az emojit statikusként jelölte meg." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Felnőtt tartalomként jelölte meg a csatornát." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Nem felnőtt tartalomként jelölte meg a csatornát." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "A tagot véglegesként jelölte meg." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Lejátszás leállítása" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Közepes" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Közepes méret (alapértelmezett)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Tag" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Tagműveletek – {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Tag kitiltva" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Tag leválasztva" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Tag kirúgva" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "A taglisták átmenetileg nem érhetők el ebben a közösségben" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Tag áthelyezve" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "A tag nem található" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Tag szerepkörei frissítve" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Tag ekkortól" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Tag kitiltása feloldva" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Tag frissítve" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "A tagok eltávolításra kerülnek, ha offline állapotban vannak, kivéve, ha szerepkört kapnak." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Tagok eltávolítva" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "A(z) {readMessageHistoryPermissionLabel} jogosultsággal nem rendelkező tagok az e dátum után küldött üzeneteket láthatják." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Tagok, kiválasztva" @@ -20077,8 +21149,10 @@ msgstr "A téged megemlítő üzenetek {recentMentionsRetentionDays} napig jelen msgid "Mentions of you show up here for {retentionDays} days." msgstr "A téged megemlítő üzenetek {retentionDays} napig jelennek meg itt." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Csak említések" @@ -20104,7 +21178,7 @@ msgstr "üzenet" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Üzenet" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Üzenet hibakeresése" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Üzenet törölve" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Üzenetlista ehhez: {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Üzenet rögzítve" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Üzenet ideje" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Üzenet rögzítése feloldva" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Üzenetek és média" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Üzenetek törölve" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Moderálás" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Itt jelennek meg a moderálási műveletek és a közösségi változások." @@ -20915,16 +21989,51 @@ msgstr "Áthelyezés ide" msgid "Move to…" msgstr "Áthelyezés ide…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Áthelyezve innen: {oldChannel} ide: {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Áthelyezte a csatornát a(z) {oldCategory} kategóriából a(z) {newCategory} kategóriába." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Áthelyezte a csatornát ebbe a kategóriába: {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "A csatorna áthelyezve a(z) „{0}” kategóriába." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "A szerepkört lejjebb helyezte a tagok listájában." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "A szerepkört lejjebb helyezte a szerepkörök listájában." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "A szerepkört a(z) {0}. helyre mozgatta." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "A szerepkört feljebb helyezte a tagok listájában." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "A szerepkört feljebb helyezte a szerepkörlistában." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Új üzenet" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Új üzenetek" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "Nincs hivatkozott helyi fájl" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Még nincsenek naplók" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "Nincs megadva ok" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "Nincs megadva ok." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Nincs átalakítás" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Nincs átalakítás" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "OAuth2 URL-készítő" msgid "Objects" msgstr "Tárgyak" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Tárgyak" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Ki" @@ -23523,6 +24636,21 @@ msgstr "Az eredeti üzenet betöltése sikertelen" msgid "Original message was deleted" msgstr "Az eredeti üzenet törölve lett" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Eredetileg {user} tiltotta ki ekkor: {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Eredetileg {user} tiltotta ki." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Eredetileg ekkor lett kitiltva: {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "A csökkentett mozgás miatt szünetel. Kapcsold be az animált emojik f msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "A csökkentett mozgás miatt szünetel. Kapcsold be a GIF-ek folyamatos lejátszásához." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Meghívók szüneteltetve." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Véglegesen törli a fiókodat és minden kapcsolódó adatot. Ez nem vo msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Véglegesen törli a közvetlen és csoportos beszélgetésekben, valamint a közösségekben küldött üzeneteidet. A folyamat a háttérben fut, és közvetlen üzenetben értesítünk, ha elkészült." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Engedélyfelülbírálás hozzáadva" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Engedélyfelülbírálás eltávolítva" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Engedélyfelülbírálás frissítve" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Készen állsz a csomagváltásra?" msgid "Real-time" msgstr "Valós idejű" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Ok (indoklás)" @@ -26291,26 +27440,166 @@ msgstr "{oldLabel} szerepkör eltávolítva." msgid "Removed roles." msgstr "Eltávolította a szerepköröket." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "Eltávolítva az AFK csatorna." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Eltávolította a profilképet." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Eltávolította a csatornát a kategóriájából." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Kivette a csatornát ebből a kategóriából: {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Eltávolítva a csevegésbe ágyazott háttér." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "Eltávolítva a közösség bannere." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Eltávolítva a közösség ikonja." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "Eltávolítva a tartalomra figyelmeztető szöveg." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Eltávolítva a tartalomfigyelmeztetés." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Eltávolítva az egyéni szerepkör ikonja." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Eltávolítva az egyéni figyelmeztető szöveg." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Eltávolítva a leírás: {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Eltávolítva a meghívó háttere." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Eltávolítva a hivatkozás." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Eltávolítva a tagnak a közösségi profiljához tartozó kiemelőszín." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Eltávolítva a tag közösségi profilképe." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Eltávolítva a tag közösségi profiljának borítóképe." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Eltávolítva a tag közösségi profiljának bemutatkozása." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "Eltávolítva a tag közösségi profiljának névmásai." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Eltávolítva az üzenettörténet küszöbértéke." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "Eltávolítva a(z) {nick} becenév." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "Eltávolítva a felülbírálás a következő jogosultságokra: {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "Eltávolítva a(z) {role} szerepkör." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Eltávolítva a szerepkör színe." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Eltávolítva a szerepkör ikonja." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Eltávolította a szabályok csatornát." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "Eltávolította a rendszerüzenetek csatornáját." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "Eltávolítva az ideiglenes korlátozás." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "Eltávolítva a téma: {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Eltávolította a Unicode-emojit." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Eltávolította a felhasználói korlátot." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "Eltávolítva a(z) {code} egyéni meghívólink." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Ideiglenes korlátozás feloldva: {targetUserTag}" @@ -26381,6 +27670,11 @@ msgstr "Átnevezte a matricát „{0}” névre." msgid "Renamed the channel to {0}." msgstr "Átnevezte a csatornát „{0}” névre." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Átnevezte a közösséget erről: {oldName} erre: {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Kétlépcsős azonosítás megkövetelése a moderátoroktól tagok kiti msgid "Required" msgstr "Kötelező" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "Moderálási műveletekhez 2FA szükséges." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Térköz visszaállítása" msgid "Reset the connection limit." msgstr "A kapcsolati korlát visszaállítva." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "Visszaállította a szerepkör taglistabeli pozícióját." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Ennek a szerepkörnek az említése a megfelelő jogosultsággal rendelk msgid "Resubscribe" msgstr "Újra előfizetek" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Meghívók újraindítva." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Vissza a bejelentkezéshez" @@ -27330,6 +28639,11 @@ msgstr "Visszavonod ezt a meghívót? Ez nem vonható vissza." msgid "Revoked {0}." msgstr "Visszavonva: {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "Visszavonva: {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (jobb)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Jobbra igazítva" @@ -27408,7 +28724,7 @@ msgstr "Csengőhang" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Szerepkör" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Szerepkör színe" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Szerepkör létrehozva" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Szerepkör sikeresen létrehozva" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Szerepkör törölve" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "Szerepkör neve kötelező" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Szerepkör frissítve" @@ -28930,11 +30246,21 @@ msgstr "Munkamenetek" msgid "Set {fieldNode} to {0}." msgstr "A(z) {fieldNode} értékét erre állította: {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Beállított egy egyéni szerepkörikont." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Egyéni állapot beállítása" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Beállította a szerepkör taglistabeli pozícióját." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "A szerepkör színét erre állította: <0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "A lassú módot {0} {seconds, plural, one {másodpercre} other {másodpercre}} állította." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Lassú mód beállítva: {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Állapot beállítása" msgid "Set the AFK channel to {0}." msgstr "Az AFK-csatornát erre állította: {0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "Az AFK csatorna beállítva erre: {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "Az AFK-időkorlátot {0} másodpercre állította." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "A hangminőség beállítva erre: {kbps} kbps." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "A csatorna típusát erre állította: {0}." msgid "Set the connection limit to {0}." msgstr "A kapcsolati korlátot erre állította: {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "A tartalomfigyelmeztetés szövege erre lett állítva: {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "Egyéni figyelmeztető szöveg beállítva: {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "A leírás beállítva erre: {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "A meghívó háttérképének igazítását erre állította: {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "A hivatkozás beállítása: {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "A tag közösségi profiljának kiemelőszínét erre állította: {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "A tag közösségi profiljának bemutatkozását erre állította: {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "A tag közösségi profiljának névmásait erre állította: {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "Az üzenettörténet küszöbértéke beállítva erre: {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "Beállította a becenevet: {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Állítsd be a nyilvános terméknevet, a témaszínt és a kliensekben megjelenő képi erőforrásokat." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "Beállítva a szerepkör színe erre: {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "A szerepkör ikonja erre lett beállítva: {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "A szabálycsatornát erre állította: {0}." msgid "Set the system channel to {0}." msgstr "A rendszerüzenetek csatornáját erre állította: {0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "A rendszercsatorna beállítva erre: {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "A téma beállítva erre: {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "A felhasználói korlátot erre állította: {0}." msgid "Set the vanity URL to {0}." msgstr "Az egyéni meghívólinket erre állította: {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "Az egyéni meghívólink beállítva erre: {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "A hangcsatorna régiója beállítva erre: {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "A hangcsatorna régiójának automatikusra állítása." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Globális profilborítóképed megjelenítése ebben a közösségben" msgid "Show your Visionary as a regular subscription instead" msgstr "A Visionary-előfizetés megjelenítése normál előfizetésként" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Az ezzel a szerepkörrel rendelkező tagokat külön szakaszban jelenítette meg a taglistában." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Valami hiba történt a visszatérítés feldolgozása során. Ha ez továbbra is előfordul, vedd fel a kapcsolatot az ügyfélszolgálattal." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Hiba történt a tevékenységnapló betöltése közben." @@ -31105,6 +32531,11 @@ msgstr "Hanghívás indítása" msgid "Start with computer" msgstr "Indítás a számítógéppel együtt" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "A szerepkörrel rendelkező tagok külön megjelenítése elindult." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "matrica" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "A matrica nem tömöríthető eléggé" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Matrica létrehozva" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Matrica törölve" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Nincs több szabad matricahely" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Matrica frissítve" @@ -31412,6 +32843,46 @@ msgstr "Stream nézésének leállítása" msgid "Stop." msgstr "Leállítás." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "A rugalmas szöveges csatornanevek használatának engedélyezése leállítva." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Megszüntette annak lehetőségét, hogy mások lemásolják ennek a közösségnek az emojijait." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Megszüntette annak lehetőségét, hogy mások lemásolják ennek a közösségnek a matricáit." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "A szerepkörrel rendelkező tagok külön megjelenítése leállítva." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "A csatlakozási üzenetek elrejtésének leállítása a rendszercsatornában." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "A közösség tulajdonosának koronája elrejtésének leállítása." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Megszűnt a moderálási műveletekhez a kétlépcsős azonosítás követelménye." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Megakadályozta, hogy a tag hallja a többieket ebben a közösségben." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Szinkronizálás kategóriával" msgid "Syntax highlighting" msgstr "Szintaxiskiemelés" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "Rendszer" @@ -32449,6 +33922,16 @@ msgstr "Az alkalmazás összeomlott. Frissítések keresése, amelyek megoldhatj msgid "The app should now be signed in to your account." msgstr "Az alkalmazásban most már be kell lenned jelentkezve a fiókodba." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "A kitiltás már lejárt ekkor: {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "A kitiltásnak ekkor kellett volna lejárnia: {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "A bot hozzáadva ide: <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "Az asztali frissítés letöltődött. A telepítés befejezéséhez ind msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "A letöltött fájl a számítógépedre mentve. Telepítsd a szokásos csomagkezelőddel." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "Az emojit {user} töltötte fel." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "A fájl tartalmazza az ellenőrző tokent, amelyet a következő helyről fogunk lekérni: <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "A feltölteni kívánt fájl mérete meghaladja a(z) {maxSizeFormatted} msgid "The following people can't be added to this group DM:" msgstr "A következő személyek nem adhatók hozzá ehhez a csoportos beszélgetéshez:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "A meghívót {user} hozta létre ekkor: {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "A meghívót {user} hozta létre." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "A meghívó ekkor jött létre: {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "A meghívót soha nem használták." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "A meghívó ekkor járt volna le: {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "A meghívó korlátlan használatra lett beállítva." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "A meghívó ennyi idő után járt volna le: {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "A meghívó ideiglenes tagságot biztosított." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "A meghívó beállítása úgy történt, hogy soha ne járjon le." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "A közösségedben leggyakrabban használt nyelv. Ezzel szűrheted a Felfedezés találatait." @@ -32518,6 +34051,11 @@ msgstr "Lehet, hogy a link még működik. Próbáld meg újra egy pillanat múl msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "A felnőtt tartalomhoz való hozzáférés ellenőrzése megszakadt. Bezárhatod ezt a lapot, és újrapróbálhatod az alkalmazásból." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "A tagnak már nincs ideiglenes státusza." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "Az új ár már ütemezve van erre: {effectiveDate}." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "Az új hangcsatorna átveszi a(z) <0>{channelLabel} jogosultságait, felhasználói korlátját és bitrátáját." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "A felülbírálás lehetővé tette a(z) {permissions} használatát." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "A felülbírálás megtagadta a(z) {permissions} hozzáférést." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "A keresett oldal nem létezik, vagy áthelyezték." @@ -32565,6 +34113,11 @@ msgstr "A megadott redirect_uri nincs regisztrálva ehhez az alkalmazáshoz." msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "A megadott redirect_uri-nak HTTP vagy HTTPS protokollt kell használnia." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "A szerepkör a következőket biztosította: {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "A matrica animáltként lett feltöltve." msgid "The sticker was uploaded as static." msgstr "A matrica statikus képként lett feltöltve." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "A matricát {user} töltötte fel." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "A rendszer a(z) {target} felhasználónak adta a(z) {role} szerepkört." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "A rendszer eltávolította a(z) {role} szerepkört {target} felhasználótól." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "A(z) <0>{fluxerTag} felhasználónév már foglalt. A folytatással msgid "The verification code is invalid or expired." msgstr "Az ellenőrző kód érvénytelen vagy lejárt." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "A webhookot {user} hozta létre." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Ezt a kártyát nem a számlázási országodban bocsátották ki, ezért nem használható az adott helyi pénznemhez. Használj helyi kártyát, vagy térj vissza a(z) {productName} alkalmazásba, és válassz másik fizetési módot." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "Ez a kategória már tartalmazza a maximális {maxChannelsPerCategory} csatornát." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Kövesd nyomon a moderátori műveleteket a közösségben." @@ -33953,6 +35526,11 @@ msgstr "Átruházod a csoport tulajdonjogát a(z) {userName} felhasználóra?" msgid "Transfer ownership" msgstr "Tulajdonjog átruházása" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Közösség tulajdonjogának átadása {user} részére." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Adatvédelem bekapcsolása streameléskor" msgid "Turn text smileys into emoji" msgstr "Szöveges emotikonok cseréje emojikra" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Kikapcsolta a felnőtt tartalmat." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Kikapcsolta a lassú módot." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "Letiltotta a tartalomfigyelmeztetést." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Kikapcsolta a különálló borítóképet." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Kikapcsolta a tag mikrofonját ebben a közösségben." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Bekapcsolta a felnőtt tartalmat." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "Bekapcsolta a tartalomfigyelmeztetést." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Bekapcsolta a különálló borítóképet." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "Visszakapcsolta a tag mikrofonját ebben a közösségben." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "A hatókörök kikapcsolása megakadályozhatja az alkalmazás megfelelő működését." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "Ukrán" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Nem sikerült betölteni a tevékenységnaplókat" @@ -34859,6 +36482,7 @@ msgstr "Ismeretlen cél" msgid "unknown user" msgstr "ismeretlen felhasználó" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "ismeretlen felhasználó" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Csak ebben a közösségben használható." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Vermont" msgid "Version" msgstr "Verzió" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Nagyon magas" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Webkamera" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook: {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Webhook létrehozva" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhook törölve" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Webhook neve" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhook frissítve" diff --git a/fluxer_app/src/features/i18n/locales/id/messages.po b/fluxer_app/src/features/i18n/locales/id/messages.po index c3f58ffcf..0fd2c77ca 100644 --- a/fluxer_app/src/features/i18n/locales/id/messages.po +++ b/fluxer_app/src/features/i18n/locales/id/messages.po @@ -56,6 +56,31 @@ msgstr "{a} sedang mengetik..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b}, dan {c} sedang mengetik..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} menambahkan penimpaan izin untuk {user} di {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} menambahkan penimpaan izin untuk @everyone di {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} menambahkan penimpaan izin untuk peran {role} di {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} menambahkan stiker." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} menambahkan emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} menambahkan izin saluran untuk {targetEntity} di {channelNode}." @@ -64,35 +89,200 @@ msgstr "{actor} menambahkan izin saluran untuk {targetEntity} di {channelNode}." msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} menambahkan izin saluran untuk {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} menambahkan bot {target} sebagai anggota sementara." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} menambahkan bot {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} menambahkan bot {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} menambahkan emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} menambahkan emoji {namedTarget}." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} menambahkan stiker {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} menambahkan stiker {namedTarget}." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} memblokir {target} selama {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} memblokir {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} memblokir {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} mengubah akhir pembatasan {target} untuk mengirim pesan, bereaksi, dan bergabung ke saluran suara menjadi {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} mengubah nama panggilan {target} dari {oldNick} menjadi {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} mengubah penimpaan izin kategori {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} mengubah penimpaan izin saluran {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} mengubah penimpaan izin saluran tautan {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} mengubah penimpaan izin saluran teks {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} mengubah penimpaan izin saluran suara {channel}." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} mengubah URL kustom dari {oldCode} menjadi {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} mengubah avatar profil komunitasnya." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} mengubah banner profil komunitasnya." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} mengubah bio profil komunitasnya menjadi {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} mengubah nama panggilannya dari {oldNick} menjadi {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} membuat webhook." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} membuat kategori {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} membuat saluran {channel} di {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} membuat saluran {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} membuat saluran {namedTarget}." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} membuat undangan {code} untuk {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} membuat undangan {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} membuat undangan {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} membuat saluran tautan {channel} di {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} membuat saluran tautan {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} membuat peran {namedTarget}." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} membuat peran {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} membuat saluran teks {channel} di {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} membuat saluran teks {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} membuat saluran suara {channel} di {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} membuat saluran suara {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} membuat webhook {name} di {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} membuat webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} membuat webhook {namedTarget}." @@ -103,49 +293,209 @@ msgstr "{actor} membuat webhook {namedTarget}." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} menghapus {0} {bulkCount, plural, one {pesan} other {pesan}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} menghapus {count, plural, one {# pesan} other {# pesan}} di {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} menghapus {count, plural, one {# pesan} other {# pesan}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} menghapus pesan di {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} menghapus pesan." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} menghapus pesan{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} menghapus stiker." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} menghapus webhook." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} menghapus emoji." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} menghapus beberapa pesan{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} menghapus beberapa pesan di {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} menghapus beberapa pesan." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} menghapus kategori {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} menghapus saluran {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} menghapus saluran {namedTarget}." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} menghapus emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} menghapus emoji {namedTarget}." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} menghapus undangan {code} untuk {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} menghapus undangan {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} menghapus undangan {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} menghapus saluran tautan {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} menghapus peran {namedTarget}." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} menghapus peran {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} menghapus stiker {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} menghapus stiker {namedTarget}." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} menghapus saluran teks {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} menghapus saluran suara {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} menghapus webhook {name} dari {channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} menghapus webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} menghapus webhook {namedTarget}." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} memutus sambungan {target} dari {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} memutus sambungan suara {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} memutus sambungan suara {targetMember}." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} terputus dari {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} terputus dari suara." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} memberikan peran {role} kepada {target}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} mengeluarkan {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} mengeluarkan {targetMember}." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} membuat {target} kembali dapat mendengar orang lain di komunitas ini." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} membuat perubahan yang tidak dapat ditampilkan oleh versi aplikasi ini." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} memindahkan {target} dari {oldChannel} ke {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} memindahkan {target} ke {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} memindahkan {target} ke saluran suara lain." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} memindahkan {targetMember} ke {channelNode}." @@ -154,16 +504,68 @@ msgstr "{actor} memindahkan {targetMember} ke {channelNode}." msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} memindahkan {targetMember} ke saluran suara lain." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} pindah dari {oldChannel} ke {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} memindahkan peran {role} ke bawah dalam daftar anggota." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} memindahkan peran {role} ke bawah dalam daftar peran." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} memindahkan peran {role} ke atas dalam daftar anggota." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} memindahkan peran {role} ke atas dalam daftar peran." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} pindah ke {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} pindah ke saluran suara lain." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} menjeda undangan." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} melakukan tindakan audit pada {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} menyematkan pesan di {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} menyematkan pesan." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} menyematkan pesan{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} membersihkan anggota tidak aktif." @@ -179,19 +581,249 @@ msgstr "{actor} menghapus izin saluran untuk {targetEntity} di {channelNode}." msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} menghapus izin saluran untuk {targetEntity}." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} menghapus nama panggilan {nick} dari {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} menghapus penimpaan izin untuk {user} dari {channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} menghapus penimpaan izin untuk @everyone dari {channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} menghapus penimpaan izin untuk peran {role} dari {channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} menghapus peran {role} dari {target}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} menghapus batas waktu untuk {target}." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} menghapus URL kustom {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} menghapus warna aksen profil komunitasnya." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} menghapus avatar profil komunitasnya." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} menghapus banner profil komunitasnya." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} menghapus bio profil komunitasnya." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} menghapus kata ganti profil komunitasnya." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} menghapus nama panggilannya {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} mengganti nama kategori {oldName} menjadi {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} mengganti nama saluran {oldName} menjadi {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} mengganti nama komunitas dari {oldName} menjadi {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} mengganti nama emoji {oldEmoji} menjadi {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} mengganti nama saluran tautan {oldName} menjadi {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} mengganti nama peran {oldName} menjadi {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} mengganti nama stiker {oldName} menjadi {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} mengganti nama saluran teks {oldName} menjadi {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} mengganti nama saluran suara {oldName} menjadi {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} mengganti nama webhook {oldName} menjadi {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} mengatur ulang posisi daftar anggota untuk peran {role}." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} melanjutkan undangan." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} mengatur posisi daftar anggota untuk peran {role}." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} mengganti nama panggilan {target} menjadi {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} mengubah URL kustom menjadi {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} mengubah warna aksen profil komunitasnya menjadi {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} menambahkan avatar profil komunitasnya." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} menambahkan banner profil komunitasnya." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} mengatur bio profil komunitasnya menjadi {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} mengatur kata ganti profil komunitasnya menjadi {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} mengubah nama panggilannya menjadi {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} membuat {target} tidak dapat mendengar orang lain di komunitas ini." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} memberi batas waktu kepada {target} hingga {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} mentransfer kepemilikan komunitas ke {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} menyalakan kembali mikrofon {target} di komunitas ini." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} mematikan mikrofon {target} di komunitas ini." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} mencabut pemblokiran {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} membatalkan pemblokiran {targetMember}." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} melepas sematan pesan di {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} melepas sematan pesan." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} melepas sematan pesan{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} memperbarui {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} memperbarui {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} memperbarui stiker." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} memperbarui webhook." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} memperbarui emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} memperbarui izin saluran untuk {targetEntity} di {channelNode}." @@ -204,35 +836,112 @@ msgstr "{actor} memperbarui izin saluran untuk {targetEntity}." msgid "{actor} updated roles for {targetMember}." msgstr "{actor} memperbarui peran untuk {targetMember}." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} memperbarui kategori {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} memperbarui saluran {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} memperbarui saluran {namedTarget}." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} memperbarui pengaturan komunitas." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} memperbarui emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} memperbarui emoji {namedTarget}." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} memperbarui undangan {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} memperbarui undangan {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} memperbarui saluran tautan {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} memperbarui penimpaan izin untuk {user} di {channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} memperbarui penimpaan izin untuk @everyone di {channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} memperbarui penimpaan izin untuk peran {role} di {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} memperbarui peran {namedTarget}." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} memperbarui peran {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} memperbarui peran {target}." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} memperbarui stiker {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} memperbarui stiker {namedTarget}." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} memperbarui saluran teks {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} memperbarui saluran suara {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} memperbarui webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} memperbarui webhook {namedTarget}." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} memperbarui profil komunitasnya." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# item} other {# item}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# anggota} other {# anggota}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# izin lainnya} other {# izin lainnya}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# komunitas bersama} other {# komunitas bersama}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {Tampilkan # perangkat} other {Tampilkan # perangkat msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Keluar dari # perangkat} other {Keluar dari # perangkat}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {Tautan undangan dibatasi hingga # kali penggunaan.} other {Tautan undangan dibatasi hingga # kali penggunaan.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {Tautan undangan digunakan # kali.} other {Tautan undangan digunakan # kali.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "Saluran {guildName}" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Aktivitas" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Log aktivitas" @@ -2713,10 +3437,60 @@ msgstr "Menambahkan {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "Menambahkan {length, plural, one {# referensi file lokal} other {# referensi file lokal}}." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "Menambahkan latar belakang sematan obrolan." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Menambahkan banner komunitas." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Menambahkan ikon komunitas." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "Menambahkan peringatan konten dengan teks {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Menambahkan peringatan konten." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "Menambahkan avatar." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Menambahkan latar belakang undangan." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Menambahkan peran." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Menambahkan avatar profil komunitas anggota." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Menambahkan banner profil komunitas anggota." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "Menambahkan peran {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Kontrol perataan hanya tersedia di layar yang lebih lebar" #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Semua <0/>, selamanya. Tanpa tagihan, tanpa perpanjangan." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Semua tindakan" @@ -3001,10 +3775,12 @@ msgstr "Semua bahasa" msgid "All members" msgstr "Semua anggota" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "Sepanjang waktu" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Semua pengguna" @@ -3197,6 +3973,16 @@ msgstr "Mengizinkan {0} dan menghapus izin untuk {1}." msgid "Allowed {0}." msgstr "Mengizinkan {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "Diizinkan {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Mengizinkan semua anggota menyebut peran ini." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Penelepon yang diizinkan" @@ -3205,15 +3991,35 @@ msgstr "Penelepon yang diizinkan" msgid "Allowed everyone to mention this role." msgstr "Mengizinkan semua orang menyebut peran ini." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Mengizinkan nama saluran teks yang fleksibel." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Undangan yang diizinkan" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Mengizinkan orang lain untuk menyalin emoji komunitas ini." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Mengizinkan orang lain untuk menyalin stiker komunitas ini." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Pengalihan yang diizinkan" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Mengizinkan hingga {count, plural, one {# koneksi} other {# koneksi}} per anggota." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Blokir anggota" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Blokir anggota dari komunitas, dengan opsi untuk menghapus pesan-pesan terbaru mereka." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Alasan pemblokiran" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Blokir pengguna" msgid "Blocked" msgstr "Diblokir" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Mencegah anggota mengirim pesan, bereaksi, dan bergabung ke saluran suara hingga {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Bot" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Bot ditambahkan" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Kategori dihapus" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Kategori penuh" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Tengah" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Tengah" @@ -6298,11 +7116,183 @@ msgstr "Ubah nama penggunamu" msgid "Changed nickname from {0} to {1}." msgstr "Mengubah nama panggilan dari {0} menjadi {1}." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Mengubah mode lambat dari {oldDuration} menjadi {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "Mengubah saluran AFK dari {oldChannel} ke {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "Mengubah batas waktu AFK dari {oldDuration} menjadi {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "Mengubah kualitas audio dari {oldKbps} kbps menjadi {newKbps} kbps." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Mengubah avatar." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Mengubah bitrate menjadi {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Mengubah akhir pembatasan mengirim pesan, bereaksi, dan bergabung ke saluran suara menjadi {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Mengubah latar belakang sematan obrolan." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Mengubah banner komunitas." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Mengubah ikon komunitas." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "Mengubah koneksi per anggota dari {oldCount} menjadi {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "Mengubah teks peringatan konten dari {oldText} menjadi {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Mengubah ikon peran kustom." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Mengubah teks peringatan kustom dari {oldText} menjadi {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "Mengubah setelan notifikasi default dari {oldSetting} menjadi {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Mengubah deskripsi dari {oldText} menjadi {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Mengubah filter konten eksplisit dari {oldFilter} ke {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Mengubah perataan gambar latar belakang undangan dari {oldAlignment} ke {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Mengubah latar belakang undangan." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "Mengubah tautan dari {oldUrl} ke {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Mengubah avatar profil komunitas anggota." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Mengubah banner profil komunitas anggota." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "Mengubah bio profil komunitas anggota menjadi {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "Mengubah batas riwayat pesan dari {oldDate} ke {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "Mengubah nama dari {oldName} menjadi {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "Mengubah nama panggilan dari {oldNick} menjadi {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Mengubah warna peran dari {oldColor} ke {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Mengubah ikon peran dari {oldEmoji} menjadi {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "Mengubah saluran sistem dari {oldChannel} ke {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Mengubah topik dari {oldText} menjadi {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "Mengubah batas pengguna dari {oldCount} menjadi {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "Mengubah URL kustom dari {oldCode} menjadi {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Mengubah tingkat verifikasi dari {oldLevel} ke {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "Mengubah wilayah suara dari {oldRegion} ke {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "saluran" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Saluran atau kategori" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Timpaan saluran ditambahkan" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Timpaan saluran dihapus" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Timpaan saluran diperbarui" @@ -7815,7 +8805,7 @@ msgstr "Komunitas dengan lebih dari 250 orang akan otomatis menggunakan pengatur #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Hapus pesanmu di percakapan ini?" msgid "Deleted" msgstr "Dihapus" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "Menghapus riwayat pesan terbaru anggota selama {duration}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Teks dicoret" msgid "Deleted your messages." msgstr "Pesanmu telah dihapus." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "kategori-terhapus" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "saluran-terhapus" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "peran-terhapus" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "Menolak {0} dan menghapus penolakan untuk {1}." msgid "Denied {0}." msgstr "Menolak {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "Ditolak {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Sematan ditampilkan lagi" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Kloning emoji diaktifkan" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Emoji dibuat" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Emoji dihapus" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Slot emoji penuh" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Emoji diperbarui" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Filter berdasarkan tanggal pembuatan akun" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Filter berdasarkan tindakan" @@ -14572,18 +15587,22 @@ msgstr "Filter berdasarkan peran" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Filter berdasarkan pengguna" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Filter semua orang" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Filter anggota tanpa peran" @@ -15890,6 +16909,11 @@ msgstr "Memberikan {0} dan mencabut {1}." msgid "Granted {0}." msgstr "Memberikan {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "Diberikan {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Hai, {username}! Semoga betah ya di sini." msgid "Hey, {username}, welcome aboard!" msgstr "Hai, {username}, selamat datang!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Menyembunyikan pesan bergabung di saluran sistem." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Menyembunyikan mahkota pemilik komunitas." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Sembunyikan kameramu sendiri?" msgid "Hide your own screen share?" msgstr "Sembunyikan berbagi layarmu sendiri?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Tinggi" @@ -17688,7 +18724,7 @@ msgstr "Undang" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "Kode undangannya adalah {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Undangan dibuat" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Undangan dihapus" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Undangan tidak tersedia" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Undangan diperbarui" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (kiri)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Rata kiri" @@ -18745,6 +19783,11 @@ msgstr "Biarkan pembaca layar mengumumkan pesan baru yang masuk di saluran yang msgid "Let the community self-moderate" msgstr "Biarkan komunitas memoderasi sendiri" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Membuat anggota kembali dapat mendengar orang lain di komunitas ini." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Izinkan CSS kustom menampilkan area jendela transparan setelah memulai ulang aplikasi desktop." @@ -18815,6 +19858,16 @@ msgstr "Disukai." msgid "Likes: <0>{countLabel}" msgstr "Suka: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "Membatasi penyebutan peran ini hanya untuk anggota yang memiliki izin menyebut peran apa pun." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Membatasi saluran hingga {count, plural, one {# pengguna} other {# pengguna}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Louisiana" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Rendah" @@ -19204,6 +20259,11 @@ msgstr "Default macOS" msgid "macOS permissions" msgstr "Izin macOS" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Membuat saluran mewarisi setelan konten dewasa." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Menandai emoji sebagai animasi." msgid "Marked emoji as static." msgstr "Menandai emoji sebagai statis." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Menandai saluran ini sebagai berisi konten dewasa." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Menandai saluran ini sebagai tidak berisi konten dewasa." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "Menandai anggota sebagai permanen." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Hentikan pemutaran" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Sedang" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Ukuran sedang (default)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Anggota" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Tindakan anggota untuk {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Anggota diblokir" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Anggota diputus dari suara" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Anggota dikeluarkan" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Daftar anggota sementara tidak tersedia di komunitas ini" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Anggota dipindahkan" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Anggota tidak ditemukan" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Peran anggota diperbarui" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Anggota sejak" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Pemblokiran anggota dibatalkan" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Anggota diperbarui" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Anggota akan dikeluarkan saat offline kecuali diberi peran." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Anggota dibersihkan" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "Anggota tanpa izin {readMessageHistoryPermissionLabel} dapat melihat pesan yang dikirim setelah tanggal ini." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Anggota, terpilih" @@ -20077,8 +21149,10 @@ msgstr "Sebutan untukmu akan muncul di sini selama {recentMentionsRetentionDays} msgid "Mentions of you show up here for {retentionDays} days." msgstr "Sebutan untukmu akan muncul di sini selama {retentionDays} hari." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Hanya sebutan" @@ -20104,7 +21178,7 @@ msgstr "pesan" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Pesan" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Debug pesan" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Pesan dihapus" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Daftar pesan untuk {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Pesan disematkan" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Waktu pesan" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Sematan pesan dilepas" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Pesan & media" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Pesan dihapus" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Moderasi" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Tindakan moderasi dan perubahan komunitas akan muncul di sini." @@ -20915,16 +21989,51 @@ msgstr "Pindahkan ke" msgid "Move to…" msgstr "Pindahkan ke…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Dipindahkan dari {oldChannel} ke {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Memindahkan saluran dari kategori {oldCategory} ke kategori {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Memindahkan saluran ke kategori {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Memindahkan saluran ke kategori {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "Memindahkan peran ke bawah dalam daftar anggota." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "Memindahkan peran ke bawah dalam daftar peran." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Memindahkan peran ke posisi {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "Memindahkan peran ke atas dalam daftar anggota." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "Memindahkan peran ke atas dalam daftar peran." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Pesan baru" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Pesan baru" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "Tidak ada file lokal yang direferensikan" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Belum ada log" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "Tidak ada alasan yang diberikan" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "Tidak ada alasan yang diberikan." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Tanpa konversi" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Tanpa konversi" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "Pembuat URL OAuth2" msgid "Objects" msgstr "Objek" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Objek" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Nonaktif" @@ -23523,6 +24636,21 @@ msgstr "Pesan asli gagal dimuat" msgid "Original message was deleted" msgstr "Pesan asli telah dihapus" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Awalnya diblokir oleh {user} pada {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Awalnya diblokir oleh {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Awalnya diblokir pada {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Dijeda karena gerakan dikurangi. Aktifkan untuk tetap memutar emoji anim msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "Dijeda karena gerakan dikurangi. Aktifkan untuk tetap memutar GIF." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Menjeda undangan." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Hapus permanen akunmu dan semua data terkait. Tindakan ini tidak dapat d msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Hapus permanen pesan yang kamu kirim di DM, DM grup, dan komunitas. Proses ini berjalan di latar belakang, dan kamu akan menerima DM setelah selesai." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Penimpaan izin ditambahkan" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Penimpaan izin dihapus" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Penimpaan izin diperbarui" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Siap upgrade?" msgid "Real-time" msgstr "Waktu nyata" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Alasan" @@ -26291,26 +27440,166 @@ msgstr "Menghapus peran {oldLabel}." msgid "Removed roles." msgstr "Menghapus peran." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "Menghapus saluran AFK." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Menghapus avatar." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Menghapus saluran dari kategorinya." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Memindahkan saluran keluar dari kategori {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Menghapus latar belakang sematan obrolan." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "Menghapus banner komunitas." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Menghapus ikon komunitas." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "Menghapus teks peringatan konten." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Menghapus peringatan konten." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Menghapus ikon peran kustom." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Menghapus teks peringatan kustom." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Menghapus deskripsi {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Menghapus latar belakang undangan." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Menghapus tautan." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Menghapus warna aksen profil komunitas anggota." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Menghapus avatar profil komunitas anggota." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Menghapus banner profil komunitas anggota." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Menghapus bio profil komunitas anggota." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "Menghapus kata ganti profil komunitas anggota." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Menghapus batas riwayat pesan." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "Menghapus nama panggilan {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "Menghapus penimpaan untuk {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "Menghapus peran {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Menghapus warna peran." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Menghapus ikon peran." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Menghapus saluran aturan." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "Menghapus saluran sistem." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "Menghapus batas waktu." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "Menghapus topik {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Menghapus emoji Unicode." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Menghapus batas pengguna." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "Menghapus URL kustom {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Menghapus batas waktu dari {targetUserTag}" @@ -26381,6 +27670,11 @@ msgstr "Mengganti nama stiker menjadi {0}." msgid "Renamed the channel to {0}." msgstr "Mengganti nama saluran menjadi {0}." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Mengganti nama komunitas dari {oldName} menjadi {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Wajibkan autentikasi dua faktor untuk moderator sebelum mereka dapat mem msgid "Required" msgstr "Wajib" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "Mewajibkan 2FA untuk tindakan moderasi." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Setel ulang spasi" msgid "Reset the connection limit." msgstr "Menyetel ulang batas koneksi." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "Mengatur ulang posisi daftar anggota untuk peran tersebut." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Membatasi penyebutan peran ini hanya untuk anggota yang memiliki izin." msgid "Resubscribe" msgstr "Berlangganan lagi" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Melanjutkan undangan." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Kembali ke halaman masuk" @@ -27330,6 +28639,11 @@ msgstr "Cabut undangan ini? Tidak dapat dibatalkan." msgid "Revoked {0}." msgstr "Mencabut {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "Dicabut {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (kanan)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Rata kanan" @@ -27408,7 +28724,7 @@ msgstr "Nada dering" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Peran" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Warna peran" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Peran dibuat" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Peran berhasil dibuat" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Peran dihapus" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "Nama peran wajib diisi" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Peran diperbarui" @@ -28930,11 +30246,21 @@ msgstr "Sesi" msgid "Set {fieldNode} to {0}." msgstr "Mengatur {fieldNode} ke {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Mengatur ikon peran kustom." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Atur status kustom" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Mengatur posisi daftar anggota untuk peran tersebut." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "Mengatur warna peran ke <0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "Mengatur mode lambat ke {0} {seconds, plural, one {detik} other {detik}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Mengatur mode lambat menjadi {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Atur status" msgid "Set the AFK channel to {0}." msgstr "Mengatur saluran AFK ke {0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "Mengatur saluran AFK ke {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "Mengatur batas waktu AFK ke {0} detik." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "Mengatur kualitas audio ke {kbps} kbps." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "Mengatur jenis saluran ke {0}." msgid "Set the connection limit to {0}." msgstr "Mengatur batas koneksi ke {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "Mengatur teks peringatan konten menjadi {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "Mengatur teks peringatan kustom menjadi {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "Mengatur deskripsi menjadi {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "Mengatur perataan splash undangan ke {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "Mengatur tautan ke {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "Mengatur warna aksen profil komunitas anggota menjadi {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "Mengatur bio profil komunitas anggota menjadi {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "Mengatur kata ganti profil komunitas anggota menjadi {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "Mengatur batas riwayat pesan ke {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "Mengatur nama panggilan menjadi {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Atur nama produk publik, warna tema, dan aset gambar yang ditampilkan klien." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "Mengatur warna peran menjadi {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "Mengatur ikon peran ke {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "Mengatur saluran aturan ke {0}." msgid "Set the system channel to {0}." msgstr "Mengatur saluran sistem ke {0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "Mengatur saluran sistem ke {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "Mengatur topik ke {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "Mengatur batas pengguna ke {0}." msgid "Set the vanity URL to {0}." msgstr "Mengatur URL kustom ke {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "Mengatur URL kustom menjadi {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "Mengatur wilayah suara ke {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "Mengatur wilayah suara ke otomatis." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Tampilkan banner profil globalmu di komunitas ini" msgid "Show your Visionary as a regular subscription instead" msgstr "Tampilkan Visionary-mu sebagai langganan biasa saja" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Menampilkan anggota dengan peran ini di bagian mereka sendiri dalam daftar anggota." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Terjadi kesalahan saat memproses pengembalian danamu. Hubungi dukungan jika masalah ini terus berlanjut." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Terjadi kesalahan saat memuat log aktivitas." @@ -31105,6 +32531,11 @@ msgstr "Mulai panggilan suara" msgid "Start with computer" msgstr "Mulai saat komputer menyala" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "Mulai menampilkan anggota dengan peran ini secara terpisah." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "stiker" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "Stiker tidak dapat dikompresi cukup kecil" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Stiker dibuat" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Stiker dihapus" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Slot stiker penuh" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Stiker diperbarui" @@ -31412,6 +32843,46 @@ msgstr "Berhenti menonton streaming" msgid "Stop." msgstr "Berhenti." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Berhenti mengizinkan nama saluran teks yang fleksibel." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Berhenti mengizinkan orang lain menyalin emoji komunitas ini." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Berhenti mengizinkan orang lain menyalin stiker komunitas ini." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Berhenti menampilkan anggota dengan peran ini secara terpisah." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Berhenti menyembunyikan pesan bergabung di saluran sistem." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Berhenti menyembunyikan mahkota pemilik komunitas." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Berhenti mewajibkan 2FA untuk tindakan moderasi." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Membuat anggota tidak dapat mendengar orang lain di komunitas ini." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Sinkronkan dengan kategori" msgid "Syntax highlighting" msgstr "Penyorotan sintaks" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "Sistem" @@ -32449,6 +33922,16 @@ msgstr "Aplikasi mengalami error. Mencari pembaruan yang mungkin bisa memperbaik msgid "The app should now be signed in to your account." msgstr "Aplikasi seharusnya sudah masuk ke akunmu." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "Pemblokiran tersebut telah kedaluwarsa pada {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "Pemblokiran dijadwalkan berakhir pada {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "Bot telah ditambahkan ke <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "Pembaruan desktop telah diunduh. Mulai ulang {productName} untuk menyele msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "File yang diunduh disimpan di komputermu. Instal dengan manajer paket yang biasa kamu pakai." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "Emoji ini diunggah oleh {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "File ini berisi token verifikasi yang akan kami ambil dari <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "Ukuran file yang kamu coba unggah melebihi batas maksimum {maxSizeFormat msgid "The following people can't be added to this group DM:" msgstr "Orang-orang berikut tidak bisa ditambahkan ke DM grup ini:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "Undangan dibuat oleh {user} pada {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "Undangan dibuat oleh {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "Undangan dibuat pada {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "Undangan tersebut tidak pernah digunakan." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "Undangan dijadwalkan kedaluwarsa pada {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "Tautan undangan diatur untuk mengizinkan penggunaan tanpa batas." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "Tautan undangan diatur untuk kedaluwarsa setelah {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "Undangan diatur untuk memberikan keanggotaan sementara." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "Tautan undangan diatur agar tidak kedaluwarsa." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "Bahasa yang digunakan sebagian besar anggota komunitasmu. Dipakai untuk memfilter hasil Discovery." @@ -32518,6 +34051,11 @@ msgstr "Tautan mungkin masih berfungsi. Coba lagi sebentar lagi." msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "Pemeriksaan konten dewasa dibatalkan. Kamu bisa menutup tab ini dan coba lagi dari aplikasi." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "Anggota tersebut tidak lagi bersifat sementara." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "Harga baru sudah dijadwalkan pada {effectiveDate}." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "Saluran suara baru akan memakai izin, batas pengguna, dan bitrate yang sama seperti <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "Penimpaan tersebut mengizinkan {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "Penimpaan tersebut menolak {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "Halaman yang kamu cari tidak ada atau sudah dipindahkan." @@ -32565,6 +34113,11 @@ msgstr "redirect_uri yang diberikan tidak terdaftar untuk aplikasi ini." msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "redirect_uri yang diberikan harus menggunakan HTTP atau HTTPS." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "Peran tersebut memberikan {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "Stiker diunggah sebagai animasi." msgid "The sticker was uploaded as static." msgstr "Stiker diunggah sebagai statis." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "Stiker diunggah oleh {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "Sistem memberikan peran {role} kepada {target}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "Sistem menghapus peran {role} dari {target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "Nama pengguna <0>{fluxerTag} sudah dipakai. Jika kamu lanjut, tagmu msgid "The verification code is invalid or expired." msgstr "Kode verifikasi tidak valid atau sudah kedaluwarsa." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "Webhook dibuat oleh {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Kartu ini tidak cocok dengan negara penagihanmu, jadi tidak dapat digunakan untuk mata uang lokal ini. Gunakan kartu lokal, atau kembali ke {productName} dan pilih metode pembayaran lain." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "Kategori ini sudah berisi jumlah maksimum {maxChannelsPerCategory} saluran." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Lacak tindakan moderator di seluruh komunitas." @@ -33953,6 +35526,11 @@ msgstr "Transfer kepemilikan grup ke {userName}?" msgid "Transfer ownership" msgstr "Transfer kepemilikan" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Mengalihkan kepemilikan komunitas ke {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Aktifkan privasi streaming" msgid "Turn text smileys into emoji" msgstr "Ubah smiley teks menjadi emoji" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Menonaktifkan konten dewasa." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Mematikan mode lambat." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "Menonaktifkan peringatan konten." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Menonaktifkan banner terpisah." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Mematikan mikrofon anggota di komunitas ini." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Mengaktifkan konten dewasa." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "Mengaktifkan peringatan konten." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Mengaktifkan banner terpisah." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "Menyalakan kembali mikrofon anggota di komunitas ini." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Mematikan cakupan dapat menyebabkan aplikasi tidak berfungsi dengan benar." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "Ukraina" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Tidak dapat memuat log aktivitas" @@ -34859,6 +36482,7 @@ msgstr "Target tidak diketahui" msgid "unknown user" msgstr "pengguna tidak dikenal" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "pengguna tidak dikenal" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Hanya digunakan di komunitas ini." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Vermont" msgid "Version" msgstr "Versi" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Sangat tinggi" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Webcam" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Webhook dibuat" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhook dihapus" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Nama webhook" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhook diperbarui" diff --git a/fluxer_app/src/features/i18n/locales/it/messages.po b/fluxer_app/src/features/i18n/locales/it/messages.po index a90f41c4e..c9209212b 100644 --- a/fluxer_app/src/features/i18n/locales/it/messages.po +++ b/fluxer_app/src/features/i18n/locales/it/messages.po @@ -56,6 +56,31 @@ msgstr "{a} sta scrivendo..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} e {c} stanno scrivendo..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} ha aggiunto un'eccezione ai permessi per {user} in {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} ha aggiunto un'eccezione ai permessi per @everyone in {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} ha aggiunto un'eccezione ai permessi per il ruolo {role} in {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} ha aggiunto uno sticker." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} ha aggiunto un'emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} ha aggiunto i permessi del canale per {targetEntity} in {channelNode}." @@ -64,35 +89,200 @@ msgstr "{actor} ha aggiunto i permessi del canale per {targetEntity} in {channel msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} ha aggiunto i permessi del canale per {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} ha aggiunto il bot {target} come membro temporaneo." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} ha aggiunto il bot {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} ha aggiunto il bot {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} ha aggiunto l'emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} ha aggiunto l'emoji {namedTarget}." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} ha aggiunto lo sticker {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} ha aggiunto lo sticker {namedTarget}." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} ha bannato {target} per {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} ha bannato {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} ha bannato {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} ha modificato il blocco di {target} per l'invio di messaggi, le reazioni e la partecipazione ai canali vocali, impostando la fine al {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} ha cambiato il soprannome di {target} da {oldNick} a {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} ha modificato le eccezioni ai permessi della categoria {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} ha modificato le eccezioni ai permessi del canale {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} ha modificato le eccezioni ai permessi del canale link {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} ha modificato le eccezioni ai permessi del canale testuale {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} ha modificato le eccezioni ai permessi del canale vocale {channel}." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} ha cambiato l'URL personalizzato da {oldCode} a {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} ha cambiato l'avatar del proprio profilo community." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} ha cambiato il banner del proprio profilo community." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} ha modificato la biografia del proprio profilo community in {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} ha cambiato il suo soprannome da {oldNick} a {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} ha creato un webhook." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} ha creato la categoria {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} ha creato il canale {channel} in {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} ha creato il canale {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} ha creato il canale {namedTarget}." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} ha creato l'invito {code} per {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} ha creato l'invito {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} ha creato l'invito {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} ha creato il canale link {channel} in {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} ha creato il canale link {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} ha creato il ruolo {namedTarget}." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} ha creato il ruolo {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} ha creato il canale testuale {channel} in {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} ha creato il canale testuale {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} ha creato il canale vocale {channel} in {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} ha creato il canale vocale {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} ha creato il webhook {name} in {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} ha creato il webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} ha creato il webhook {namedTarget}." @@ -103,49 +293,209 @@ msgstr "{actor} ha creato il webhook {namedTarget}." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} ha eliminato {0} {bulkCount, plural, one {messaggio} other {messaggi}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} ha eliminato {count, plural, one {# messaggio} other {# messaggi}} in {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} ha eliminato {count, plural, one {# messaggio} other {# messaggi}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} ha eliminato un messaggio in {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} ha eliminato un messaggio." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} ha eliminato un messaggio{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} ha eliminato uno sticker." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} ha eliminato un webhook." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} ha eliminato un'emoji." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} ha eliminato più messaggi{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} ha eliminato alcuni messaggi in {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} ha eliminato alcuni messaggi." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} ha eliminato la categoria {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} ha eliminato il canale {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} ha eliminato il canale {namedTarget}." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} ha eliminato l'emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} ha eliminato l'emoji {namedTarget}." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} ha eliminato l'invito {code} per {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} ha eliminato l'invito {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} ha eliminato l'invito {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} ha eliminato il canale link {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} ha eliminato il ruolo {namedTarget}." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} ha eliminato il ruolo {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} ha eliminato lo sticker {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} ha eliminato lo sticker {namedTarget}." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} ha eliminato il canale testuale {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} ha eliminato il canale vocale {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} ha eliminato il webhook {name} da {channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} ha eliminato il webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} ha eliminato il webhook {namedTarget}." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} ha disconnesso {target} da {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} ha disconnesso {target} dalla chat vocale." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} ha disconnesso {targetMember} dalla chat vocale." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} si è disconnesso da {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} si è disconnesso dalla chat vocale." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} ha dato a {target} il ruolo {role}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} ha espulso {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} ha espulso {targetMember}." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} ha permesso a {target} di sentire di nuovo gli altri in questa community." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} ha apportato una modifica che questa versione dell'app non può mostrare." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} ha spostato {target} da {oldChannel} a {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} ha spostato {target} in {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} ha spostato {target} in un altro canale vocale." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} ha spostato {targetMember} su {channelNode}." @@ -154,16 +504,68 @@ msgstr "{actor} ha spostato {targetMember} su {channelNode}." msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} ha spostato {targetMember} in un altro canale vocale." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} si è spostato da {oldChannel} a {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} ha spostato il ruolo {role} più in basso nell'elenco dei membri." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} ha spostato il ruolo {role} più in basso nell'elenco dei ruoli." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} ha spostato il ruolo {role} più in alto nell'elenco dei membri." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} ha spostato il ruolo {role} più in alto nell'elenco dei ruoli." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} si è spostato in {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} si è spostato in un altro canale vocale." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} ha messo in pausa gli inviti." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} ha eseguito un’azione registrata su {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} ha fissato un messaggio in {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} ha fissato un messaggio." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} ha fissato un messaggio{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} ha rimosso i membri inattivi." @@ -179,19 +581,249 @@ msgstr "{actor} ha rimosso i permessi del canale per {targetEntity} in {channelN msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} ha rimosso i permessi del canale per {targetEntity}." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} ha rimosso il soprannome {nick} da {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} ha rimosso l'eccezione ai permessi per {user} da {channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} ha rimosso l'eccezione ai permessi per @everyone da {channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} ha rimosso l'eccezione ai permessi per il ruolo {role} da {channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} ha rimosso il ruolo {role} da {target}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} ha rimosso il timeout per {target}." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} ha rimosso l'URL personalizzato {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} ha rimosso il colore d'accento del proprio profilo community." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} ha rimosso l'avatar del proprio profilo community." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} ha rimosso il banner del proprio profilo community." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} ha rimosso la biografia del proprio profilo community." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} ha rimosso i pronomi dal proprio profilo community." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} ha rimosso il suo soprannome {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} ha rinominato la categoria {oldName} in {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} ha rinominato il canale {oldName} in {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} ha rinominato la community da {oldName} a {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} ha rinominato l'emoji {oldEmoji} in {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} ha rinominato il canale link {oldName} in {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} ha rinominato il ruolo {oldName} in {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} ha rinominato lo sticker {oldName} in {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} ha rinominato il canale testuale {oldName} in {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} ha rinominato il canale vocale {oldName} in {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} ha rinominato il webhook {oldName} in {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} ha reimpostato la posizione nell'elenco membri per il ruolo {role}." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} ha ripreso gli inviti." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} ha impostato una posizione nell'elenco membri per il ruolo {role}." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} ha impostato il soprannome di {target} su {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} ha impostato l'URL personalizzato su {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} ha impostato il colore d'accento del proprio profilo community su {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} ha impostato l'avatar del proprio profilo community." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} ha impostato il banner del proprio profilo community." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} ha impostato la biografia del proprio profilo community su {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} ha impostato i pronomi del proprio profilo community su {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} ha impostato il proprio soprannome su {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} ha impedito a {target} di sentire gli altri in questa community." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} ha messo {target} in timeout fino al {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} ha trasferito la proprietà della community a {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} ha riattivato il microfono di {target} in questa community." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} ha disattivato il microfono di {target} in questa community." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} ha revocato il ban di {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} ha revocato il ban di {targetMember}." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} ha rimosso un messaggio dai messaggi fissati in {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} ha rimosso un messaggio dai messaggi fissati." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} ha rimosso un messaggio dai messaggi fissati{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} ha aggiornato {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} ha aggiornato {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} ha aggiornato uno sticker." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} ha aggiornato un webhook." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} ha aggiornato un'emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} ha aggiornato i permessi del canale per {targetEntity} in {channelNode}." @@ -204,35 +836,112 @@ msgstr "{actor} ha aggiornato i permessi del canale per {targetEntity}." msgid "{actor} updated roles for {targetMember}." msgstr "{actor} ha aggiornato i ruoli di {targetMember}." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} ha aggiornato la categoria {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} ha aggiornato il canale {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} ha aggiornato il canale {namedTarget}." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} ha aggiornato le impostazioni della community." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} ha aggiornato l'emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} ha aggiornato l'emoji {namedTarget}." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} ha aggiornato l'invito {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} ha aggiornato l'invito {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} ha aggiornato il canale link {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} ha aggiornato l'eccezione ai permessi per {user} in {channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} ha aggiornato l'eccezione ai permessi per @everyone in {channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} ha aggiornato l'eccezione ai permessi per il ruolo {role} in {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} ha aggiornato il ruolo {namedTarget}." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} ha aggiornato il ruolo {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} ha aggiornato i ruoli di {target}." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} ha aggiornato lo sticker {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} ha aggiornato lo sticker {namedTarget}." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} ha aggiornato il canale testuale {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} ha aggiornato il canale vocale {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} ha aggiornato il webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} ha aggiornato il webhook {namedTarget}." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} ha aggiornato il suo profilo della community." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# elemento} other {# elementi}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# membro} other {# membri}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# altro permesso} other {# altri permessi}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# community in comune} other {# community in comune}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {Mostra # dispositivo} other {Mostra # dispositivi}} msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Disconnetti # dispositivo} other {Disconnetti # dispositivi}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {L'invito è stato limitato a # utilizzo.} other {L'invito è stato limitato a # utilizzi.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {L'invito è stato utilizzato # volta.} other {L'invito è stato utilizzato # volte.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "Canali di {guildName}" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Attività" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Registro attività" @@ -2713,10 +3437,60 @@ msgstr "Aggiunto {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "{length, plural, one {Aggiunto # riferimento a un file locale.} other {Aggiunti # riferimenti a file locali.}}" +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "Aggiunto lo sfondo dei contenuti incorporati in chat." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Aggiunto un banner della community." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Aggiunta un'icona alla community." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "Aggiunto un avviso sui contenuti con il testo {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Aggiunto un avviso sui contenuti." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "Aggiunto un avatar." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Aggiunta un'immagine di sfondo per gli inviti." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Ruoli aggiunti." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Aggiunto l'avatar del profilo community del membro." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Aggiunto il banner del profilo community del membro." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "Aggiunto il ruolo {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "I controlli di allineamento sono disponibili solo su schermi più ampi" #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Tutti i <0/>, per sempre. Nessun addebito, nessun rinnovo." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Tutte le azioni" @@ -3001,10 +3775,12 @@ msgstr "Tutte le lingue" msgid "All members" msgstr "Tutti i membri" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "Sempre" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Tutti gli utenti" @@ -3197,6 +3973,16 @@ msgstr "Ha consentito {0} e rimosso il permesso per {1}." msgid "Allowed {0}." msgstr "Consentito {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "Consentito {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Consentito a tutti i membri di menzionare questo ruolo." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Chiamanti autorizzati" @@ -3205,15 +3991,35 @@ msgstr "Chiamanti autorizzati" msgid "Allowed everyone to mention this role." msgstr "Consentito a tutti di menzionare questo ruolo." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Consentiti nomi flessibili per i canali testuali." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Inviti consentiti" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Consentito ad altri di clonare le emoji di questa community." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Consentito ad altri di clonare gli sticker di questa community." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Reindirizzamenti consentiti" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Consentite fino a {count, plural, one {# connessione} other {# connessioni}} per membro." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Banna membri" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Banna i membri dalla community, con l'opzione di eliminare i loro messaggi recenti." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Motivo del ban" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Blocca utente" msgid "Blocked" msgstr "Bloccati" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Impedito al membro di inviare messaggi, reagire e partecipare ai canali vocali fino al {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Bot" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Bot aggiunto" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Categoria eliminata" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Categoria piena" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Centra" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Centrato" @@ -6298,11 +7116,183 @@ msgstr "Cambia il tuo nome utente" msgid "Changed nickname from {0} to {1}." msgstr "Soprannome cambiato da {0} a {1}." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Modificata la modalità lenta da {oldDuration} a {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "Cambiato il canale AFK da {oldChannel} a {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "Modificato il timeout AFK da {oldDuration} a {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "Modificata la qualità audio da {oldKbps} kbps a {newKbps} kbps." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Modificato l'avatar." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Bitrate cambiato in {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Modificato il blocco per l'invio di messaggi, le reazioni e la partecipazione ai canali vocali in modo che termini il {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Modificato lo sfondo dei contenuti incorporati in chat." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Modificato il banner della community." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Modificata l'icona della community." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "Modificate le connessioni per membro da {oldCount} a {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "Modificato il testo dell'avviso sui contenuti da {oldText} a {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Modificata l'icona personalizzata del ruolo." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Modificato il testo di avviso personalizzato da {oldText} a {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "Modificata l'impostazione predefinita delle notifiche da {oldSetting} a {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Modificata la descrizione da {oldText} a {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Modificato il filtro contenuti espliciti da {oldFilter} a {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Modificato l'allineamento dello sfondo dell'invito da {oldAlignment} a {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Modificata l'immagine di sfondo dell'invito." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "Modificato il link da {oldUrl} a {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Modificato l'avatar del profilo community del membro." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Modificato il banner del profilo community del membro." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "Modificata la biografia del profilo community del membro in {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "Modificata la soglia della cronologia dei messaggi da {oldDate} a {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "Modificato il nome da {oldName} a {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "Modificato il soprannome da {oldNick} a {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Modificato il colore del ruolo da {oldColor} a {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Modificata l'icona del ruolo da {oldEmoji} a {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "Modificato il canale di sistema da {oldChannel} a {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Modificato l'argomento da {oldText} a {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "Modificato il limite di utenti da {oldCount} a {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "Modificato l'URL personalizzato da {oldCode} a {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Modificato il livello di verifica da {oldLevel} a {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "Modificata la regione vocale da {oldRegion} a {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "canale" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Canale o categoria" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Eccezione ai permessi del canale aggiunta" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Eccezione ai permessi del canale rimossa" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Eccezione ai permessi del canale aggiornata" @@ -7815,7 +8805,7 @@ msgstr "Le community con più di 250 persone sono impostate automaticamente su \ #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Eliminare i tuoi messaggi in questa conversazione?" msgid "Deleted" msgstr "Eliminato" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "Eliminata la cronologia dei messaggi recenti del membro per un periodo di {duration}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Testo eliminato" msgid "Deleted your messages." msgstr "Messaggi eliminati." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "categoria-eliminata" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "canale-eliminato" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "ruolo-eliminato" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "Ha negato {0} e rimosso il rifiuto per {1}." msgid "Denied {0}." msgstr "Negato {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "Negato {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Contenuti incorporati nuovamente visibili" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Clonazione emoji abilitata" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Emoji creata" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Emoji eliminata" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Slot emoji pieni" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Emoji aggiornata" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Filtra per data di creazione account" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Filtra per azione" @@ -14572,18 +15587,22 @@ msgstr "Filtra per ruoli" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Filtra per utente" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Filtra tutti" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Filtra membri senza ruoli" @@ -15890,6 +16909,11 @@ msgstr "Concessi {0} e revocati {1}." msgid "Granted {0}." msgstr "Ha concesso {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "Concesso {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Ciao, {username}! Spero ti trovi bene." msgid "Hey, {username}, welcome aboard!" msgstr "Ciao, {username}, benvenuto!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Messaggi di ingresso nascosti nel canale di sistema." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Nascosta la corona del proprietario della community." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Nascondere la tua fotocamera?" msgid "Hide your own screen share?" msgstr "Nascondere la tua condivisione schermo?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Alta" @@ -17688,7 +18724,7 @@ msgstr "Invita" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "Il codice d'invito è {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Invito creato" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Invito eliminato" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Invito non disponibile" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Invito aggiornato" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (sinistro)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Allineato a sinistra" @@ -18745,6 +19783,11 @@ msgstr "Consenti ai lettori schermo di annunciare i nuovi messaggi non appena ar msgid "Let the community self-moderate" msgstr "Consenti alla community di auto-moderarsi" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Consentito al membro di sentire di nuovo gli altri in questa community." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Consente al CSS personalizzato di rivelare le aree trasparenti della finestra dopo aver riavviato l'app desktop." @@ -18815,6 +19858,16 @@ msgstr "Mi piace aggiunto." msgid "Likes: <0>{countLabel}" msgstr "Mi piace: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "Limitate le menzioni di questo ruolo ai membri con il permesso di menzionare qualsiasi ruolo." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Limitato il canale a {count, plural, one {# utente} other {# utenti}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Louisiana" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Basso" @@ -19204,6 +20259,11 @@ msgstr "macOS (predefinito)" msgid "macOS permissions" msgstr "Autorizzazioni macOS" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Impostato il canale in modo che erediti l'impostazione dei contenuti per adulti." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Emoji contrassegnata come animata." msgid "Marked emoji as static." msgstr "Emoji contrassegnata come statica." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Contrassegnato il canale come contenente contenuti per adulti." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Contrassegnato il canale come non contenente contenuti per adulti." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "Ha contrassegnato il membro come permanente." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Interrompi riproduzione" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Media" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Dimensioni medie (predefinito)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Membro" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Azioni membro per {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Membro bannato" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Membro disconnesso" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Membro espulso" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Gli elenchi dei membri non sono temporaneamente disponibili in questa community" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Membro spostato" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Membro non trovato" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Ruoli del membro aggiornati" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Membro dal" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Ban del membro revocato" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Membro aggiornato" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "I membri vengono rimossi quando sono offline, a meno che non venga assegnato loro un ruolo." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Membri rimossi" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "I membri senza il permesso {readMessageHistoryPermissionLabel} possono vedere i messaggi inviati dopo questa data." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Membri, voce selezionata" @@ -20077,8 +21149,10 @@ msgstr "Le menzioni che ti riguardano vengono mostrate qui per {recentMentionsRe msgid "Mentions of you show up here for {retentionDays} days." msgstr "Le menzioni che ti riguardano vengono visualizzate qui per {retentionDays} giorni." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Solo menzioni" @@ -20104,7 +21178,7 @@ msgstr "messaggio" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Messaggio" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Debug messaggio" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Messaggio eliminato" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Elenco messaggi per {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Messaggio fissato" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Ora del messaggio" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Messaggio rimosso dai messaggi fissati" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Messaggi e media" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Messaggi eliminati" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Moderazione" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Qui verranno visualizzate le azioni di moderazione e le modifiche della community." @@ -20915,16 +21989,51 @@ msgstr "Sposta in" msgid "Move to…" msgstr "Sposta in…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Spostato da {oldChannel} a {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Spostato il canale dalla categoria {oldCategory} alla categoria {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Spostato il canale nella categoria {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Ha spostato il canale nella categoria {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "Spostato il ruolo più in basso nell'elenco dei membri." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "Spostato il ruolo più in basso nell'elenco dei ruoli." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Ruolo spostato alla posizione {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "Spostato il ruolo più in alto nell'elenco dei membri." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "Spostato il ruolo più in alto nell'elenco dei ruoli." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Nuovo messaggio" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Nuovi messaggi" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "Nessun riferimento a file locali" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Ancora nessuna voce nel registro" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "Nessun motivo specificato" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "Nessun motivo fornito." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Nessuna conversione" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Nessuna conversione" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "Generatore URL OAuth2" msgid "Objects" msgstr "Oggetti" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Oggetti" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Disattivato" @@ -23523,6 +24636,21 @@ msgstr "Impossibile caricare il messaggio originale" msgid "Original message was deleted" msgstr "Messaggio originale eliminato" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Bannato originariamente da {user} il {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Originariamente bannato da {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Bannato originariamente il {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "In pausa per la riduzione del movimento. Attiva per mantenere la riprodu msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "In pausa per la riduzione del movimento. Attiva per riprodurre le GIF." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Inviti in pausa." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Elimina definitivamente il tuo account e tutti i dati associati. Questa msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Rimuovi in modo permanente i messaggi che hai inviato in DM, DM di gruppo e community. L'operazione viene eseguita in background e riceverai un DM al termine." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Eccezione ai permessi aggiunta" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Eccezione ai permessi rimossa" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Eccezione ai permessi aggiornata" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Vuoi fare l'upgrade?" msgid "Real-time" msgstr "In tempo reale" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Motivo" @@ -26291,26 +27440,166 @@ msgstr "Ruolo \"{oldLabel}\" rimosso." msgid "Removed roles." msgstr "Ruoli rimossi." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "Rimosso il canale AFK." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Rimosso l'avatar." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Ha rimosso il canale dalla sua categoria." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Rimosso il canale dalla categoria {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Rimosso lo sfondo dei contenuti incorporati in chat." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "Rimosso il banner della community." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Rimossa l'icona della community." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "Rimosso il testo dell'avviso sui contenuti." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Rimosso l'avviso sui contenuti." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Rimossa l'icona personalizzata del ruolo." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Rimosso il testo di avviso personalizzato." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Rimossa la descrizione {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Rimossa l'immagine di sfondo dell'invito." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Rimosso il link." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Rimosso il colore d'accento del profilo community del membro." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Rimosso l'avatar del profilo community del membro." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Rimosso il banner del profilo community del membro." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Rimossa la biografia del profilo community del membro." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "Rimossi i pronomi del profilo community del membro." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Rimossa la soglia della cronologia dei messaggi." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "Rimosso il soprannome {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "Rimossa l'eccezione per {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "Rimosso il ruolo {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Rimosso il colore del ruolo." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Rimossa l'icona del ruolo." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Canale delle regole rimosso." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "Ha rimosso il canale di sistema." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "Rimosso il timeout." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "Rimosso l'argomento {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Emoji Unicode rimossa." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Rimosso il limite utenti." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "Rimosso l'URL personalizzato {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Timeout rimosso per {targetUserTag}" @@ -26381,6 +27670,11 @@ msgstr "Sticker rinominato in {0}." msgid "Renamed the channel to {0}." msgstr "Ha rinominato il canale in {0}." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Rinominata la community da {oldName} a {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Richiedi l’autenticazione a due fattori per i moderatori prima che pos msgid "Required" msgstr "Obbligatorio" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "Autenticazione a due fattori obbligatoria per le azioni di moderazione." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Ripristina spaziatura" msgid "Reset the connection limit." msgstr "Limite di connessioni reimpostato." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "Reimpostata la posizione nell'elenco membri per il ruolo." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Le menzioni di questo ruolo sono state limitate ai membri con il permess msgid "Resubscribe" msgstr "Riattiva abbonamento" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Inviti ripresi." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Torna all'accesso" @@ -27330,6 +28639,11 @@ msgstr "Revocare questo invito? L'operazione non può essere annullata." msgid "Revoked {0}." msgstr "Revocato {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "Revocato {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (destro)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Allineato a destra" @@ -27408,7 +28724,7 @@ msgstr "Suoneria" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Ruolo" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Colore ruolo" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Ruolo creato" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Ruolo creato" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Ruolo eliminato" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "Il nome del ruolo è obbligatorio" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Ruolo aggiornato" @@ -28930,11 +30246,21 @@ msgstr "Sessioni" msgid "Set {fieldNode} to {0}." msgstr "Impostato {fieldNode} su {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Impostata un'icona personalizzata per il ruolo." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Imposta uno stato personalizzato" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Impostata una posizione nell'elenco membri per il ruolo." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "Colore del ruolo impostato su <0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "Modalità lenta impostata a {0} {seconds, plural, one {secondo} other {secondi}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Impostata la modalità lenta su {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Imposta stato" msgid "Set the AFK channel to {0}." msgstr "Canale AFK impostato su {0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "Impostato il canale AFK su {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "Ha impostato il timeout AFK in secondi su {0}." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "Impostata la qualità audio a {kbps} kbps." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "Tipo di canale impostato su {0}." msgid "Set the connection limit to {0}." msgstr "Limite di connessioni impostato a {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "Impostato il testo dell'avviso sui contenuti su {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "Impostato il testo di avviso personalizzato su {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "Impostata la descrizione su {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "Allineamento dello sfondo dell’invito impostato su {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "Impostato il link su {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "Impostato il colore d'accento del profilo community del membro su {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "Impostata la biografia del profilo community del membro su {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "Impostati i pronomi del profilo community del membro su {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "Impostata la soglia della cronologia dei messaggi al {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "Impostato il soprannome su {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Imposta il nome pubblico del prodotto, il colore del tema e gli asset di immagine che i client visualizzano." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "Impostato il colore del ruolo su {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "Impostata l'icona del ruolo su {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "Canale delle regole impostato su {0}." msgid "Set the system channel to {0}." msgstr "Canale di sistema impostato su {0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "Impostato il canale di sistema su {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "Impostato l'argomento su {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "Limite di utenti impostato a {0}." msgid "Set the vanity URL to {0}." msgstr "URL personalizzato impostato su {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "Impostato l'URL personalizzato su {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "Impostata la regione vocale su {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "Impostata la regione vocale su automatica." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Mostra il banner del tuo profilo globale in questa community" msgid "Show your Visionary as a regular subscription instead" msgstr "Mostra il tuo Visionary come un normale abbonamento" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Mostrati i membri con questo ruolo in una sezione dedicata nell'elenco dei membri." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Si è verificato un errore durante l'emissione del rimborso. Contatta l'assistenza se il problema persiste." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Si è verificato un errore durante il caricamento del registro attività." @@ -31105,6 +32531,11 @@ msgstr "Avvia chiamata vocale" msgid "Start with computer" msgstr "Avvia all'accensione del computer" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "I membri con questo ruolo vengono ora mostrati separatamente." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "sticker" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "Impossibile comprimere lo sticker a sufficienza" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Sticker creato" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Sticker eliminato" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Slot sticker esauriti" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Sticker aggiornato" @@ -31412,6 +32843,46 @@ msgstr "Interrompi la visione dello stream" msgid "Stop." msgstr "Interrompi." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Nomi flessibili per i canali testuali non più consentiti." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Non è più consentito ad altri di clonare le emoji di questa community." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Non è più consentito ad altri di clonare gli sticker di questa community." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "I membri con questo ruolo non vengono più mostrati separatamente." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "I messaggi di ingresso non sono più nascosti nel canale di sistema." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "La corona del proprietario della community non è più nascosta." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Rimossa la richiesta di 2FA per le azioni di moderazione." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Impedito al membro di sentire gli altri in questa community." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Sincronizza con la categoria" msgid "Syntax highlighting" msgstr "Evidenziazione sintassi" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "Sistema" @@ -32449,6 +33922,16 @@ msgstr "L'app si è bloccata. Verifico la disponibilità di aggiornamenti che po msgid "The app should now be signed in to your account." msgstr "L'app dovrebbe ora aver effettuato l'accesso al tuo account." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "Il ban era già scaduto il {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "Il ban sarebbe scaduto il {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "Il bot è stato aggiunto a <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "L'aggiornamento per il desktop è stato scaricato. Riavvia {productName} msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "Il file scaricato viene salvato sul tuo computer. Installalo con il tuo normale gestore di pacchetti." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "L'emoji è stata caricata da {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "Il file contiene il token di verifica che recupereremo da <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "Il file che stai cercando di caricare supera la dimensione massima conse msgid "The following people can't be added to this group DM:" msgstr "Le seguenti persone non possono essere aggiunte a questo DM di gruppo:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "L'invito è stato creato da {user} il {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "L'invito è stato creato da {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "L'invito è stato creato il {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "L'invito non è mai stato utilizzato." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "L'invito sarebbe scaduto il {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "L'invito è stato impostato per consentire utilizzi illimitati." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "L'invito è stato impostato per scadere dopo {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "L'invito è stato impostato per concedere l'iscrizione temporanea." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "L'invito è stato impostato per non scadere mai." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "La lingua parlata dalla maggior parte della tua community. Usata per filtrare i risultati di \"Scopri\"." @@ -32518,6 +34051,11 @@ msgstr "Il link potrebbe essere ancora attivo. Riprova tra un momento." msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "Il controllo dei contenuti per adulti è stato annullato. Puoi chiudere questa scheda e riprovare dall'app." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "Il membro non è più temporaneo." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "Il nuovo prezzo è già programmato per il {effectiveDate}." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "Il nuovo canale vocale riutilizzerà i permessi, il limite utenti e il bitrate da <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "L'eccezione ai permessi consentiva {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "L'eccezione ai permessi negava {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "La pagina che cerchi non esiste o è stata spostata." @@ -32565,6 +34113,11 @@ msgstr "Il valore redirect_uri fornito non è registrato per questa applicazione msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "Il valore redirect_uri fornito deve usare HTTP o HTTPS." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "Il ruolo concedeva {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "Lo sticker è stato caricato come animato." msgid "The sticker was uploaded as static." msgstr "Lo sticker è stato caricato come statico." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "Lo sticker è stato caricato da {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "Il sistema ha assegnato il ruolo {role} a {target}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "Il sistema ha rimosso il ruolo {role} da {target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "Il nome utente <0>{fluxerTag} è già in uso. Se continui, il tuo ta msgid "The verification code is invalid or expired." msgstr "Il codice di verifica non è valido o è scaduto." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "Il webhook è stato creato da {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Questa carta non corrisponde al tuo paese di fatturazione, quindi non può essere utilizzata per questa valuta localizzata. Usa una carta locale o torna a {productName} e scegli un altro metodo di pagamento." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "Questa categoria contiene già il numero massimo di {maxChannelsPerCategory} canali." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Tieni traccia delle azioni dei moderatori in tutta la community." @@ -33953,6 +35526,11 @@ msgstr "Trasferire la proprietà del gruppo a {userName}?" msgid "Transfer ownership" msgstr "Trasferisci proprietà" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Trasferita la proprietà della community a {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Attiva la privacy per lo streaming" msgid "Turn text smileys into emoji" msgstr "Trasforma le emoticon in emoji" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Contenuti per adulti disattivati." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Disattivata la modalità lenta." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "Disattivato l'avviso sui contenuti." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Disattivato il banner separato." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Disattivato il microfono del membro in questa community." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Contenuti per adulti attivati." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "Attivato l'avviso sui contenuti." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Attivato il banner separato." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "Riattivato il microfono del membro in questa community." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Disattivare gli ambiti di autorizzazione potrebbe impedire il corretto funzionamento dell’app." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "Ucraino" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Impossibile caricare i registri attività" @@ -34859,6 +36482,7 @@ msgstr "Destinatario sconosciuto" msgid "unknown user" msgstr "utente sconosciuto" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "utente sconosciuto" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Usato solo in questa community." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Vermont" msgid "Version" msgstr "Versione" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Molto alta" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Webcam" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Webhook creato" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhook eliminato" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Nome webhook" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhook aggiornato" diff --git a/fluxer_app/src/features/i18n/locales/ja/messages.po b/fluxer_app/src/features/i18n/locales/ja/messages.po index d269a3455..f2bbcc61b 100644 --- a/fluxer_app/src/features/i18n/locales/ja/messages.po +++ b/fluxer_app/src/features/i18n/locales/ja/messages.po @@ -56,6 +56,31 @@ msgstr "{a}が入力中…" msgid "{a}, {b} and {c} are typing..." msgstr "{a}、{b}、{c}が入力中…" +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} が {user} のために {channel} に権限オーバーライドを追加しました。" + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} が {channel} の @everyone に権限オーバーライドを追加しました。" + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} が {channel} でロール {role} の権限オーバーライドを追加しました。" + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor}がスタンプを追加しました。" + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor}が絵文字を追加しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor}が{channelNode}で{targetEntity}のチャンネル権限を追加しました。" @@ -64,35 +89,200 @@ msgstr "{actor}が{channelNode}で{targetEntity}のチャンネル権限を追 msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor}が{targetEntity}のチャンネル権限を追加しました。" +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} がボット {target} を一時メンバーとして追加しました。" + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} がボット {target} を追加しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor}がボット{targetMember}を追加しました。" +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} が絵文字 {emoji} を追加しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor}が絵文字「{namedTarget}」を追加しました。" +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} がスタンプ {name} を追加しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor}がスタンプ「{namedTarget}」を追加しました。" +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} が {target} を {duration} の間BANしました。" + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} が {target} をBANしました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor}が{targetMember}をBANしました。" +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} が {target} のメッセージ送信、リアクション、ボイス参加のブロックを {date} まで有効に変更しました。" + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} が {target} のニックネームを {oldNick} から {newNick} に変更しました。" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} がカテゴリ {channel} の権限オーバーライドを変更しました。" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} がチャンネル {channel} の権限オーバーライドを変更しました。" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} がリンクチャンネル {channel} の権限オーバーライドを変更しました。" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} がテキストチャンネル {channel} の権限オーバーライドを変更しました。" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} がボイスチャンネル {channel} の権限オーバーライドを変更しました。" + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} がカスタムURLを {oldCode} から {newCode} に変更しました。" + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} がコミュニティプロフィールのアバターを変更しました。" + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} がコミュニティプロフィールのバナーを変更しました。" + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} がコミュニティプロフィールの自己紹介を「{text}」に変更しました。" + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} がニックネームを {oldNick} から {newNick} に変更しました。" + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} がウェブフックを作成しました。" + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} がカテゴリ {channel} を作成しました。" + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} が {category} に {channel} を作成しました。" + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} がチャンネル {channel} を作成しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor}がチャンネル「{namedTarget}」を作成しました。" +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} が {channel} の招待 {code} を作成しました。" + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} が招待 {code} を作成しました。" + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor}が招待「{namedTarget}」{0}を作成しました。" +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} がリンクチャンネル {channel} を {category} に作成しました。" + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} がリンクチャンネル {channel} を作成しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor}がロール「{namedTarget}」を作成しました。" +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} がロール {role} を作成しました。" + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} がテキストチャンネル {channel} を {category} に作成しました。" + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} がテキストチャンネル {channel} を作成しました。" + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} が {category} にボイスチャンネル {channel} を作成しました。" + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} がボイスチャンネル {channel} を作成しました。" + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} が {channel} にウェブフック {name} を作成しました。" + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} がウェブフック {name} を作成しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor}がウェブフック「{namedTarget}」を作成しました。" @@ -103,49 +293,209 @@ msgstr "{actor}がウェブフック「{namedTarget}」を作成しました。" msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor}が{0}{bulkCount, plural, one {件のメッセージ} other {件のメッセージ}}を削除しました{1}。" +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} が {channel} で {count, plural, one {# 件のメッセージ} other {# 件のメッセージ}} を削除しました。" + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} が {count, plural, one {# 件のメッセージ} other {# 件のメッセージ}} を削除しました。" + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} が {channel} でメッセージを削除しました。" + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor}がメッセージを削除しました。" + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor}がメッセージを削除しました{0}。" +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor}がスタンプを削除しました。" + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} がウェブフックを削除しました。" + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} が絵文字を削除しました。" + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor}が複数のメッセージを削除しました{0}。" +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor}が{channel}でメッセージをいくつか削除しました。" + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor}がメッセージをいくつか削除しました。" + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} がチャンネルカテゴリ {channel} を削除しました。" + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} がチャンネル {channel} を削除しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor}がチャンネル「{namedTarget}」を削除しました。" +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} が絵文字 {emoji} を削除しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor}が絵文字「{namedTarget}」を削除しました。" +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} が {channel} の招待 {code} を削除しました。" + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} が招待 {code} を削除しました。" + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor}が招待「{namedTarget}」{0}を削除しました。" +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} がリンクチャンネル {channel} を削除しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor}がロール「{namedTarget}」を削除しました。" +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} がロール {role} を削除しました。" + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} がスタンプ {name} を削除しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor}がスタンプ「{namedTarget}」を削除しました。" +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} がテキストチャンネル {channel} を削除しました。" + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} がボイスチャンネル {channel} を削除しました。" + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} が {channel} からウェブフック {name} を削除しました。" + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} がウェブフック {name} を削除しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor}がウェブフック「{namedTarget}」を削除しました。" +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} が {target} を {channel} から切断しました。" + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} が {target} をボイスから切断しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor}が{targetMember}をボイスチャンネルから切断しました。" +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} が {channel} から切断しました。" + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor}がボイスから切断しました。" + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} が {target} に {role} のロールを付与しました。" + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} が {target} をキックしました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor}が{targetMember}をキックしました。" +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} が {target} がこのコミュニティで再び他の人の声を聞けるようにしました。" + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} が変更を行いましたが、このバージョンのアプリでは表示できません。" + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} が {target} を {oldChannel} から {newChannel} に移動しました。" + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} が {target} を {channel} に移動しました。" + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} が {target} を別のボイスチャンネルに移動しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor}が{targetMember}を{channelNode}に移動しました。" @@ -154,16 +504,68 @@ msgstr "{actor}が{targetMember}を{channelNode}に移動しました。" msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor}が{targetMember}を別のボイスチャンネルに移動しました。" +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} が {oldChannel} から {newChannel} に移動しました。" + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} がメンバーリストでロール {role} を下に移動しました。" + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} がロールリストでロール {role} を下に移動しました。" + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} がメンバーリストでロール {role} を上に移動しました。" + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} がロールリストでロール {role} を上に移動しました。" + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} が {channel} に移動しました。" + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor}が別のボイスチャンネルに移動しました。" + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} が招待を一時停止しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor}が{targetEntity}に対して監査アクションを実行しました。" +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor}が{channel}にメッセージをピン留めしました。" + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor}がメッセージをピン留めしました。" + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor}がメッセージをピン留めしました{0}。" +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor}が非アクティブなメンバーを削除しました。" @@ -179,19 +581,249 @@ msgstr "{actor}が{channelNode}で{targetEntity}のチャンネル権限を削 msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor}が{targetEntity}のチャンネル権限を削除しました。" +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} が {target} からニックネーム「{nick}」を削除しました。" + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} が {user} の {channel} に対する権限オーバーライドを削除しました。" + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} が {channel} から @everyone の権限オーバーライドを削除しました。" + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} が {channel} からロール {role} の権限オーバーライドを削除しました。" + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} が {target} から {role} のロールを削除しました。" + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} が {target} のタイムアウトを解除しました。" + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} がカスタムURL {code} を削除しました。" + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} がコミュニティプロフィールのアクセントカラーを削除しました。" + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} がコミュニティプロフィールのアバターを削除しました。" + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} がコミュニティプロフィールのバナーを削除しました。" + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} がコミュニティプロフィールから自己紹介を削除しました。" + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} がコミュニティプロフィールから代名詞を削除しました。" + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} がニックネーム {nick} を削除しました。" + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} がカテゴリ「{oldName}」を「{newName}」に変更しました。" + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} がチャンネル {oldName} を {newName} に変更しました。" + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} がコミュニティを {oldName} から {newName} に変更しました。" + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} が絵文字 {oldEmoji} を {newEmoji} に変更しました。" + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} がリンクチャンネル「{oldName}」を「{newName}」に変更しました。" + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} がロール {oldName} を {newName} に変更しました。" + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} がスタンプ {oldName} を {newName} に変更しました。" + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} がテキストチャンネル {oldName} を {newName} に変更しました。" + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor}がボイスチャンネル「{oldName}」を「{newName}」に変更しました。" + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} がウェブフック {oldName} を {newName} に変更しました。" + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} がロール {role} のメンバーリストの順序をリセットしました。" + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor}が招待を再開しました。" + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} がロール {role} のメンバーリストでの位置を設定しました。" + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} が {target} のニックネームを {nick} に設定しました。" + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} がカスタムURLを {code} に設定しました。" + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} がコミュニティプロフィールのアクセントカラーを {color} に設定しました。" + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} がコミュニティプロフィールのアバターを設定しました。" + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} がコミュニティプロフィールバナーを設定しました。" + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} がコミュニティプロフィールに自己紹介「{text}」を設定しました。" + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} がコミュニティプロフィールの代名詞を {text} に設定しました。" + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} がニックネームを {nick} に変更しました。" + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} が {target} がこのコミュニティで他の人の声を聞けないようにしました。" + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} が {target} をタイムアウトしました。解除は {date} です。" + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} が {user} にコミュニティのオーナー権を譲渡しました。" + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} がこのコミュニティで {target} のマイクをオンに戻しました。" + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} がこのコミュニティで {target} のマイクをオフにしました。" + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} が {target} のBANを解除しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor}が{targetMember}のBANを解除しました。" +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} が {channel} でメッセージのピン留めを解除しました。" + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor}がメッセージのピン留めを解除しました。" + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor}がメッセージのピン留めを解除しました{0}。" +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} が {target} を更新しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor}が{targetMember}を更新しました。" +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor}がスタンプを更新しました。" + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} がウェブフックを更新しました。" + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor}が絵文字を更新しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor}が{channelNode}で{targetEntity}のチャンネル権限を更新しました。" @@ -204,35 +836,112 @@ msgstr "{actor}が{targetEntity}のチャンネル権限を更新しました。 msgid "{actor} updated roles for {targetMember}." msgstr "{actor}が{targetMember}のロールを更新しました。" +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} がカテゴリ {channel} を更新しました。" + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} がチャンネル {channel} を更新しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor}がチャンネル「{namedTarget}」を更新しました。" +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor}がコミュニティ設定を更新しました。" +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} が絵文字 {emoji} を更新しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor}が絵文字「{namedTarget}」を更新しました。" +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} が招待 {code} を更新しました。" + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor}が招待「{namedTarget}」{0}を更新しました。" +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} がリンクチャンネル {channel} を更新しました。" + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} が {channel} の {user} の権限オーバーライドを更新しました。" + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} が {channel} の @everyone の権限オーバーライドを更新しました。" + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} が {channel} のロール {role} の権限オーバーライドを更新しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor}がロール「{namedTarget}」を更新しました。" +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} がロール {role} を更新しました。" + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} が {target} のロールを更新しました。" + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} がスタンプ {name} を更新しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor}がスタンプ「{namedTarget}」を更新しました。" +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} がテキストチャンネル {channel} を更新しました。" + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} がボイスチャンネル {channel} を更新しました。" + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} がウェブフック {name} を更新しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor}がウェブフック「{namedTarget}」を更新しました。" +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} がコミュニティプロフィールを更新しました。" + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {#件} other {#件}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {#人のメンバー} other {#人のメンバー}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {他 # 件の権限} other {他 # 件の権限}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {共通のコミュニティ#件} other {共通のコミュニティ#件}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {#台のデバイスを表示} other {#台のデバ msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {#台のデバイスからサインアウト} other {#台のデバイスからサインアウト}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {招待は # 回まで利用可能でした。} other {招待は # 回まで利用可能でした。}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {招待は # 回使用されました。} other {招待は # 回使用されました。}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "{guildName}のチャンネル" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "アクティビティ" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "アクティビティログ" @@ -2713,10 +3437,60 @@ msgstr "{0}を追加しました。" msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "{length, plural, one {#件のローカルファイル参照を追加しました} other {#件のローカルファイル参照を追加しました}}。" +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "チャット埋め込みの背景を追加しました。" + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "コミュニティバナーを追加しました。" + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "コミュニティアイコンを追加しました。" + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "{text} というテキストのコンテンツ警告を追加しました。" + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "コンテンツ警告を追加しました。" + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "アバターを追加しました。" + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "招待背景を追加しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "ロールを追加しました。" +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "メンバーのコミュニティプロフィールのアバターを追加しました。" + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "メンバーのコミュニティプロフィールバナーを追加しました。" + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "ロール {role} を追加しました。" + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "配置調整は、画面幅が広い場合のみ利用できます" #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "すべての<0/>を永久にご利用いただけます。請求も更新もありません。" #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "すべてのアクション" @@ -3001,10 +3775,12 @@ msgstr "すべての言語" msgid "All members" msgstr "すべてのメンバー" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "全期間" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "すべてのユーザー" @@ -3197,6 +3973,16 @@ msgstr "{0}を許可し、{1}の許可を取り消しました。" msgid "Allowed {0}." msgstr "{0}を許可しました。" +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "{permissions}を許可しました。" + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "このロールへのメンションを全員に許可しました。" + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "着信を許可する相手" @@ -3205,15 +3991,35 @@ msgstr "着信を許可する相手" msgid "Allowed everyone to mention this role." msgstr "誰でもこのロールにメンションできるようにしました。" +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "テキストチャンネル名の自由な設定を許可しました。" + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "招待を許可する相手" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "他のコミュニティのメンバーがこのコミュニティのカスタム絵文字を複製できるようにしました。" + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "他のコミュニティのメンバーがこのコミュニティのスタンプを複製できるようにしました。" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "許可済みリダイレクト" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "メンバーごとに最大 {count, plural, one {# 件の接続} other {# 件の接続}} まで許可しました。" + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "メンバーをBANする" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "メンバーをコミュニティからBANし、必要に応じて直近のメッセージを削除できます。" +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "BANの理由" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "ユーザーをブロック" msgid "Blocked" msgstr "ブロック中" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "メンバーのメッセージ送信、リアクション、ボイス参加を{date}までブロックしました。" + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "BOT" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "ボットを追加" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "カテゴリを削除しました" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "カテゴリの上限に達しました" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "中央揃え" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "中央揃え" @@ -6298,11 +7116,183 @@ msgstr "ユーザー名を変更" msgid "Changed nickname from {0} to {1}." msgstr "ニックネームを「{0}」から「{1}」に変更しました。" +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "スローモードを {oldDuration} から {newDuration} に変更しました。" + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "AFKチャンネルを {oldChannel} から {newChannel} に変更しました。" + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "AFK タイムアウトを {oldDuration} から {newDuration} に変更しました。" + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "オーディオ品質を {oldKbps} kbps から {newKbps} kbps に変更しました。" + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "アバターを変更しました。" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "ビットレートを{0}に変更しました。" +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "メッセージ送信、リアクション、ボイス参加のブロックを{date}まで有効に変更しました。" + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "チャット埋め込みの背景を変更しました。" + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "コミュニティバナーを変更しました。" + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "コミュニティのアイコンを変更しました。" + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "メンバーあたりの接続数を {oldCount} から {newCount} に変更しました。" + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "コンテンツ警告テキストを {oldText} から {newText} に変更しました。" + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "カスタムロールアイコンを変更しました。" + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "カスタム警告文を {oldText} から {newText} に変更しました。" + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "デフォルトの通知設定を {oldSetting} から {newSetting} に変更しました。" + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "説明を {oldText} から {newText} に変更しました。" + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "不適切なコンテンツのフィルターを {oldFilter} から {newFilter} に変更しました。" + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "招待背景の配置を {oldAlignment} から {newAlignment} に変更しました。" + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "招待の背景を変更しました。" + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "リンクを {oldUrl} から {newUrl} に変更しました。" + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "メンバーのコミュニティプロフィールのアバターを変更しました。" + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "メンバーのコミュニティプロフィールバナーを変更しました。" + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "メンバーのコミュニティプロフィールの自己紹介を「{text}」に変更しました。" + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "メッセージ履歴のしきい値を {oldDate} から {newDate} に変更しました。" + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "「{oldName}」から「{newName}」に変更しました。" + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "ニックネームを {oldNick} から {newNick} に変更しました。" + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "ロールの色を {oldColor} から {newColor} に変更しました。" + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "ロールアイコンを {oldEmoji} から {newEmoji} に変更しました。" + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "システムチャンネルを {oldChannel} から {newChannel} に変更しました。" + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "トピックを {oldText} から {newText} に変更しました。" + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "ユーザー制限を {oldCount} から {newCount} に変更しました。" + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "カスタムURLを {oldCode} から {newCode} に変更しました。" + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "認証レベルを {oldLevel} から {newLevel} に変更しました。" + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "ボイスリージョンを {oldRegion} から {newRegion} に変更しました。" + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "チャンネル" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "チャンネルまたはカテゴリ" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "チャンネルの権限上書きを追加しました" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "チャンネルの権限上書きを削除しました" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "チャンネルの権限上書きを更新しました" @@ -7815,7 +8805,7 @@ msgstr "250人を超えるコミュニティでは、通知設定が「メンシ #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "この会話の自分のメッセージを削除しますか?" msgid "Deleted" msgstr "削除済み" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "メンバーの直近{duration}のメッセージ履歴を削除しました。" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "打ち消し線" msgid "Deleted your messages." msgstr "メッセージを削除しました。" +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "削除されたカテゴリ" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "削除されたチャンネル" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "削除されたロール" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "{0}を拒否し、{1}の拒否を解除しました。" msgid "Denied {0}." msgstr "{0}を拒否しました。" +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "{permissions}を拒否しました。" + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "埋め込みを再表示しました" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "絵文字のクローン作成を有効にしました" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "絵文字を作成しました" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "絵文字を削除しました" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "絵文字スロットが上限に達しました" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "絵文字を更新しました" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "アカウント作成日で絞り込む" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "アクションで絞り込む" @@ -14572,18 +15587,22 @@ msgstr "ロールで絞り込む" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "ユーザーで絞り込む" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "全員をフィルター" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "ロールがないメンバーをフィルター" @@ -15890,6 +16909,11 @@ msgstr "{0}を付与し、{1}を取り消しました。" msgid "Granted {0}." msgstr "{0}を付与しました。" +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "{permissions} を付与しました。" + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "こんにちは、{username}さん!どうぞごゆっくりお過ご msgid "Hey, {username}, welcome aboard!" msgstr "{username}さん、ようこそ!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "システムチャンネルで参加メッセージを非表示にしました。" + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "コミュニティオーナーの王冠を非表示にしました。" + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "自分のカメラを非表示にしますか?" msgid "Hide your own screen share?" msgstr "自分の画面共有を非表示にしますか?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "高" @@ -17688,7 +18724,7 @@ msgstr "招待" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "招待コードは {0} です。" #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "招待を作成しました" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "招待を削除しました" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "招待は利用できません" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "招待を更新しました" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "左{keyName}" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "左揃え" @@ -18745,6 +19783,11 @@ msgstr "開いているチャンネルに新しいメッセージが届いたと msgid "Let the community self-moderate" msgstr "コミュニティに自主的なモデレーションを許可する" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "このコミュニティで再び他のメンバーの声が聞こえるようにしました。" + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "デスクトップアプリの再起動後、カスタムCSSでウィンドウの透明な領域を表示します。" @@ -18815,6 +19858,16 @@ msgstr "いいねしました。" msgid "Likes: <0>{countLabel}" msgstr "いいね:<0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "このロールへのメンションを、ロールをメンションできる権限を持つメンバーのみに制限しました。" + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "チャンネルを {count, plural, one {# 人} other {# 人}} に制限しました。" + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "ルイジアナ州" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "低" @@ -19204,6 +20259,11 @@ msgstr "macOS デフォルト" msgid "macOS permissions" msgstr "macOS の権限" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "チャンネルが成人向けコンテンツ設定を継承するようにしました。" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "絵文字をアニメーションとしてマークしました。" msgid "Marked emoji as static." msgstr "絵文字を静止画としてマークしました。" +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "チャンネルを成人向けコンテンツを含むものとしてマークしました。" + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "チャンネルを成人向けコンテンツを含まないものとしてマークしました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "メンバーを永久メンバーとしてマークしました。" @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "再生停止" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "中" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "中サイズ(デフォルト)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "メンバー" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "{displayName}さんのメンバー操作" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "メンバーをBANしました" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "メンバーを切断しました" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "メンバーをキックしました" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "このコミュニティでは、メンバーリストを一時的に利用できません" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "メンバーを移動しました" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "メンバーが見つかりません" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "メンバーのロールを更新しました" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "参加日" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "メンバーのBANを解除しました" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "メンバーを更新しました" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "ロールが付与されていない限り、オフラインになるとメンバーは削除されます。" #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "メンバーを削除しました" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "{readMessageHistoryPermissionLabel}の権限がないメンバーは、この日付以降に送信されたメッセージを閲覧できます。" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "メンバー、選択済み" @@ -20077,8 +21149,10 @@ msgstr "あなたへのメンションは、{recentMentionsRetentionDays}日間 msgid "Mentions of you show up here for {retentionDays} days." msgstr "あなたへのメンションは{retentionDays}日間ここに表示されます。" +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "メンションのみ" @@ -20104,7 +21178,7 @@ msgstr "メッセージ" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "メッセージ" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "メッセージのデバッグ" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "メッセージを削除しました" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "{channelName}のメッセージリスト" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "メッセージをピン留めしました" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "メッセージ時刻" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "メッセージのピン留めを解除しました" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "メッセージとメディア" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "メッセージを削除しました" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "モデレーション" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "モデレーション操作やコミュニティの変更がここに表示されます。" @@ -20915,16 +21989,51 @@ msgstr "移動先" msgid "Move to…" msgstr "移動先…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "{oldChannel} から {newChannel} に移動しました。" + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "チャンネルを {oldCategory} カテゴリから {newCategory} カテゴリに移動しました。" + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "{category} カテゴリにチャンネルを移動しました。" + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "チャンネルを「{0}」カテゴリに移動しました。" +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "ロールをメンバーリストの下に移動しました。" + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "ロールリストでロールを下に移動しました。" + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "ロールを{0}番目の位置に移動しました。" +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "ロールをメンバーリストの上へ移動しました。" + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "ロールをロールリストの上へ移動しました。" + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "新着メッセージ" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "新着メッセージ" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "参照されているローカルファイルはありません" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "まだログがありません" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "理由が入力されていません" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "理由が入力されていません。" @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "無変換" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "無変換" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "OAuth2 URLビルダー" msgid "Objects" msgstr "物" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "物" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "オフ" @@ -23523,6 +24636,21 @@ msgstr "元のメッセージを読み込めませんでした" msgid "Original message was deleted" msgstr "元のメッセージは削除されました" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "元々 {date} に {user} によってBANされました。" + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "元々 {user} によってBANされました。" + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "元々 {date} にBANされました。" + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "アニメーションを減らす設定により一時停止中です。 msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "アニメーションを減らす設定により一時停止中です。オンにすると、GIFの再生が続きます。" +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "招待を一時停止しました。" + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "アカウントと関連データをすべて完全に削除します。 msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "送信したメッセージをDM、グループDM、コミュニティから完全に削除します。この処理はバックグラウンドで実行され、完了するとDMでお知らせします。" +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "権限オーバーライドを追加しました" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "権限オーバーライドを削除しました" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "権限オーバーライドを更新しました" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "アップグレードしますか?" msgid "Real-time" msgstr "リアルタイム" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "理由" @@ -26291,26 +27440,166 @@ msgstr "ロール「{oldLabel}」を削除しました。" msgid "Removed roles." msgstr "ロールを削除しました。" +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "AFKチャンネルを削除しました。" + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "アバターを削除しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "チャンネルをカテゴリから削除しました。" +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "チャンネルを {category} カテゴリから外しました。" + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "チャット埋め込みの背景を削除しました。" + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "コミュニティバナーを削除しました。" + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "コミュニティアイコンを削除しました。" + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "コンテンツ警告テキストを削除しました。" + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "コンテンツ警告を削除しました。" + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "カスタムロールアイコンを削除しました。" + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "カスタム警告文を削除しました。" + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "説明 {text} を削除しました。" + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "招待の背景を削除しました。" + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "リンクを削除しました。" + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "メンバーのコミュニティプロフィールからアクセントカラーを削除しました。" + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "メンバーのコミュニティプロフィールのアバターを削除しました。" + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "メンバーのコミュニティプロフィールバナーを削除しました。" + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "メンバーのコミュニティプロフィールから自己紹介を削除しました。" + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "メンバーのコミュニティプロフィールから代名詞を削除しました。" + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "メッセージ履歴のしきい値を削除しました。" + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "ニックネーム {nick} を削除しました。" + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "{permissions} のオーバーライドを削除しました。" + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "ロール {role} を削除しました。" + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "ロールの色を削除しました。" + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "ロールアイコンを削除しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "ルールチャンネルを削除しました。" +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "システムチャンネルを削除しました。" +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "タイムアウトを解除しました。" + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "トピック「{text}」を削除しました。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Unicode絵文字を削除しました。" +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "ユーザー数の上限を削除しました。" +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "カスタムURL {code} を削除しました。" + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "{targetUserTag}のタイムアウトを解除しました" @@ -26381,6 +27670,11 @@ msgstr "スタンプ名を「{0}」に変更しました。" msgid "Renamed the channel to {0}." msgstr "チャンネル名を「{0}」に変更しました。" +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "コミュニティ名を「{oldName}」から「{newName}」に変更しました。" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "モデレーターがBAN、キック、タイムアウト、メッセー msgid "Required" msgstr "必須" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "モデレーションアクションに2FAを必須にしました。" + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "間隔をリセット" msgid "Reset the connection limit." msgstr "接続数の上限をリセットしました。" +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "ロールのメンバーリストでの位置をリセットしました。" + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "このロールへのメンションを、権限のあるメンバーに msgid "Resubscribe" msgstr "再登録" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "招待を再開しました。" + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "サインイン画面に戻る" @@ -27330,6 +28639,11 @@ msgstr "この招待を取り消しますか?元に戻すことはできませ msgid "Revoked {0}." msgstr "{0}を取り消しました。" +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "{permissions} を取り消しました。" + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "右{keyName}" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "右揃え" @@ -27408,7 +28724,7 @@ msgstr "着信音" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "ロール" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "ロールの色" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "ロールを作成しました" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "ロールを作成しました" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "ロールを削除しました" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "ロール名は必須です" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "ロールを更新しました" @@ -28930,11 +30246,21 @@ msgstr "セッション" msgid "Set {fieldNode} to {0}." msgstr "{fieldNode}を{0}に設定しました。" +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "カスタムロールアイコンを設定しました。" + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "カスタムステータスを設定" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "ロールのメンバーリストでの位置を設定しました。" + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "ロールの色を <0>{hex} <1/> に設定しました。" msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "スローモードを{0}{seconds, plural, other {秒}}に設定しました。" +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "スローモードを{duration}に設定しました。" + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "ステータスを設定" msgid "Set the AFK channel to {0}." msgstr "AFKチャンネルを{0}に設定しました。" +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "AFKチャンネルを{channel}に設定しました。" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "AFKタイムアウトを{0}秒に設定しました。" +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "オーディオ品質を {kbps} kbps に設定しました。" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "チャンネルタイプを「{0}」に設定しました。" msgid "Set the connection limit to {0}." msgstr "接続制限を{0}に設定しました。" +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "コンテンツ警告のテキストを{text}に設定しました。" + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "カスタム警告文を {text} に設定しました。" + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "説明を{text}に設定しました。" + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "招待スプラッシュの配置を「{0}」に設定しました。" +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "リンクを {url} に設定しました。" + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "メンバーのコミュニティプロフィールにアクセントカラー {color} を設定しました。" + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "メンバーのコミュニティプロフィールに「{text}」という自己紹介を設定しました。" + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "メンバーのコミュニティプロフィールの代名詞を {text} に設定しました。" + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "メッセージ履歴のしきい値を{date}に設定しました。" + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "ニックネームを{nick}に設定しました。" + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "クライアントに表示される公開プロダクト名、テーマカラー、画像アセットを設定します。" +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "ロールの色を {color} に設定しました。" + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "ロールアイコンを{emoji}に設定しました。" + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "ルールチャンネルを {0} に設定しました。" msgid "Set the system channel to {0}." msgstr "システムチャンネルを {0} に設定しました。" +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "システムチャンネルを{channel}に設定しました。" + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "トピックを {text} に設定しました。" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "ユーザー上限を{0}に設定しました。" msgid "Set the vanity URL to {0}." msgstr "カスタムURLを{0}に設定しました。" +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "カスタムURLを{code}に設定しました。" + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "ボイスリージョンを{region}に設定しました。" + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "ボイスリージョンを自動に設定しました。" + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "このコミュニティでグローバルプロフィールのバナー msgid "Show your Visionary as a regular subscription instead" msgstr "Visionaryを通常のサブスクリプションとして表示する" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "このロールを持つメンバーをメンバーリスト内の専用のセクションに表示するようにしました。" + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "返金処理中に問題が発生しました。繰り返し発生する場合は、サポートにお問い合わせください。" #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "アクティビティログの読み込み中に問題が発生しました。" @@ -31105,6 +32531,11 @@ msgstr "音声通話を開始" msgid "Start with computer" msgstr "自動起動" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "このロールを持つメンバーを個別に表示するようにしました。" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "スタンプ" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "スタンプを十分に圧縮できませんでした" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "スタンプを作成しました" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "スタンプを削除しました" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "スタンプスロットが上限に達しました" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "スタンプを更新しました" @@ -31412,6 +32843,46 @@ msgstr "ストリームの視聴を停止" msgid "Stop." msgstr "ストップ。" +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "テキストチャンネル名の自由な設定を無効にしました。" + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "他のコミュニティのメンバーがこのコミュニティのカスタム絵文字を複製できないようにしました。" + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "他のコミュニティのメンバーがこのコミュニティのスタンプを複製できないようにしました。" + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "このロールを持つメンバーを個別に表示しないようにしました。" + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "システムチャンネルで参加メッセージを非表示にするのをやめました。" + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "コミュニティオーナーの王冠を非表示にするのをやめました。" + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "モデレーションアクションに2FAを必須でなくしました。" + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "このコミュニティで他のメンバーの声が聞こえないようにしました。" + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "カテゴリと同期" msgid "Syntax highlighting" msgstr "構文ハイライト" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "システム" @@ -32449,6 +33922,16 @@ msgstr "アプリがクラッシュしました。この問題を解決する可 msgid "The app should now be signed in to your account." msgstr "これでアプリがあなたのアカウントにサインインしているはずです。" +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "そのBANは{date}にすでに期限切れになっていました。" + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "そのBANは{date}に終了する予定でした。" + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "ボットが<0>{destinationName}に追加されました。" @@ -32491,6 +33974,11 @@ msgstr "デスクトップアップデートがダウンロードされました msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "ダウンロードされたファイルはコンピューターに保存されます。通常のパッケージマネージャーでインストールしてください。" +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "絵文字は{user}がアップロードしました。" + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "ファイルには、<0>{dnsUrl} から取得する検証トークンが含まれています。" @@ -32504,6 +33992,51 @@ msgstr "アップロードしようとしているファイルは、最大サイ msgid "The following people can't be added to this group DM:" msgstr "以下のメンバーはこのグループDMに追加できません:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "{user} が {date} に招待を作成しました。" + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "招待は{user}によって作成されました。" + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "招待は{date}に作成されました。" + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "招待は一度も使用されませんでした。" + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "招待は{date}に期限切れになる予定でした。" + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "招待は無制限に使用できるように設定されました。" + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "招待は{duration}後に期限切れになるように設定されました。" + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "招待は一時的なメンバーシップを付与するように設定されました。" + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "招待の有効期限は無期限に設定されました。" + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "コミュニティで最も話されている言語です。「見つける」の検索結果の絞り込みに使用されます。" @@ -32518,6 +34051,11 @@ msgstr "リンクがまだ有効な可能性があります。しばらくして msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "成人向けコンテンツの確認がキャンセルされました。このタブを閉じて、アプリからもう一度お試しください。" +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "メンバーの一時的なメンバーシップが解除されました。" + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "新しい価格はすでに{effectiveDate}にスケジュールされて msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "新しいボイスチャンネルには、<0>{channelLabel}の権限、ユーザー制限、ビットレートが再利用されます。" +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "オーバーライドでは {permissions} が許可されていました。" + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "オーバーライドにより {permissions} が拒否されました。" + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "お探しのページは存在しないか、移動された可能性があります。" @@ -32565,6 +34113,11 @@ msgstr "指定されたredirect_uriは、このアプリケーションに登録 msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "指定されたredirect_uriはHTTPまたはHTTPSを使用する必要があります。" +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "ロールは{permissions}を付与していました。" + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "スタンプはアニメーションとしてアップロードされま msgid "The sticker was uploaded as static." msgstr "スタンプは静止画としてアップロードされました。" +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "スタンプは{user}がアップロードしました。" + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "システムが {target} に {role} のロールを付与しました。" + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "システムが {role} のロールを {target} から削除しました。" + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "ユーザー名<0>{fluxerTag}は既に使用されています。続 msgid "The verification code is invalid or expired." msgstr "認証コードが無効であるか、有効期限が切れています。" +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "ウェブフックは{user}によって作成されました。" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "このカードは請求先住所の国と一致しないため、この現地通貨では使用できません。現地のカードを使用するか、{productName}に戻って別の支払い方法を選択してください。" #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "このカテゴリにはすでにチャンネルが{maxChannelsPerCategory}個あり、上限に達しています。" @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "コミュニティ全体のモデレーターアクションを追跡します。" @@ -33953,6 +35526,11 @@ msgstr "グループの所有権を{userName}に移行しますか?" msgid "Transfer ownership" msgstr "所有権を移行" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "コミュニティのオーナーシップを{user}に譲渡しました。" + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "ストリーミングプライバシーをオンにする" msgid "Turn text smileys into emoji" msgstr "顔文字を絵文字に変換する" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "成人向けコンテンツをオフにしました。" + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "スローモードをオフにしました。" + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "コンテンツ警告をオフにしました。" + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "バナーの分離表示をオフにしました。" + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "このコミュニティでメンバーのマイクをオフにしました。" + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "成人向けコンテンツをオンにしました。" + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "コンテンツ警告をオンにしました。" + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "バナーの分離表示をオンにしました。" + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "このコミュニティでメンバーのマイクをオンに戻しました。" + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "スコープをオフにすると、アプリが正常に動作しなくなる場合があります。" @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "ウクライナ語" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "アクティビティログを読み込めません" @@ -34859,6 +36482,7 @@ msgstr "不明なターゲット" msgid "unknown user" msgstr "不明なユーザー" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "不明なユーザー" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "このコミュニティでのみ使用されます。" #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "バーモント州" msgid "Version" msgstr "バージョン" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "非常に高い" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Webカメラ" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "ウェブフック" @@ -37681,13 +39308,13 @@ msgstr "ウェブフック {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "ウェブフックを作成しました" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "ウェブフックを削除しました" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "ウェブフック名" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "ウェブフックを更新しました" diff --git a/fluxer_app/src/features/i18n/locales/ko/messages.po b/fluxer_app/src/features/i18n/locales/ko/messages.po index a15435f56..b0805c50d 100644 --- a/fluxer_app/src/features/i18n/locales/ko/messages.po +++ b/fluxer_app/src/features/i18n/locales/ko/messages.po @@ -56,6 +56,31 @@ msgstr "{a}님이 입력 중..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}님, {b}님, {c}님이 입력 중..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor}님이 {channel}에서 {user}님에 대한 권한 재정의를 추가했습니다." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor}님이 {channel}에서 @everyone에 대한 권한 재정의를 추가했습니다." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor}님이 {channel}에서 {role} 역할에 대한 권한 재정의를 추가했습니다." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor}님이 스티커를 추가했습니다." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor}님이 이모티콘을 추가했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor}님이 {channelNode}에서 {targetEntity}의 채널 권한을 추가했습니다." @@ -64,35 +89,200 @@ msgstr "{actor}님이 {channelNode}에서 {targetEntity}의 채널 권한을 추 msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor}님이 {targetEntity}의 채널 권한을 추가했습니다." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor}님이 봇 {target}님을 임시 멤버로 추가했습니다." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor}님이 봇 {target}님을 추가했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor}님이 봇 {targetMember}을(를) 추가했습니다." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor}님이 이모티콘 {emoji}을(를) 추가했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor}님이 이모티콘 {namedTarget}을(를) 추가했습니다." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor}님이 스티커 {name}을(를) 추가했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor}님이 스티커 {namedTarget}을(를) 추가했습니다." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor}님이 {target}님을 {duration} 동안 차단했습니다." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor}님이 {target}님을 차단했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor}님이 {targetMember}님을 차단했습니다." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor}님이 {target}님의 메시지 보내기, 반응하기, 음성 참여 차단을 {date}까지로 변경했습니다." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor}님이 {target}님의 닉네임을 {oldNick}에서 {newNick}(으)로 변경했습니다." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor}님이 {channel} 카테고리의 권한 재정의를 변경했습니다." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor}님이 {channel}의 권한 재정의를 변경했습니다." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor}님이 링크 채널 {channel}의 권한 재정의를 변경했습니다." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor}님이 텍스트 채널 {channel}의 권한 재정의를 변경했습니다." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor}님이 음성 채널 {channel}의 권한 재정의를 변경했습니다." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor}님이 맞춤 URL을 {oldCode}에서 {newCode}(으)로 변경했습니다." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor}님이 커뮤니티 프로필 아바타를 변경했습니다." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor}님이 커뮤니티 프로필 배너를 변경했습니다." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor}님이 커뮤니티 프로필 소개를 {text}(으)로 변경했습니다." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor}님이 닉네임을 {oldNick}에서 {newNick}(으)로 변경했습니다." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor}님이 웹훅을 만들었습니다." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor}님이 {channel} 카테고리를 만들었습니다." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor}님이 {category}에 {channel} 채널을 만들었습니다." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor}님이 {channel} 채널을 만들었습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor}님이 채널 {namedTarget}을(를) 생성했습니다." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor}님이 {channel}에 대한 초대 링크 {code}를 만들었습니다." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor}님이 초대 링크 {code}를 만들었습니다." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor}님이 초대 {namedTarget}을(를) 생성했습니다{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor}님이 {category}에 링크 채널 {channel}을(를) 만들었습니다." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor}님이 링크 채널 {channel}을(를) 만들었습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor}님이 역할 {namedTarget}을(를) 생성했습니다." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor}님이 {role} 역할을 만들었습니다." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor}님이 텍스트 채널 {channel}을(를) {category}에 만들었습니다." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor}님이 텍스트 채널 {channel}을(를) 만들었습니다." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor}님이 음성 채널 {channel}을(를) {category}에 생성했습니다." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor}님이 음성 채널 {channel}을(를) 만들었습니다." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor}님이 {channel}에 웹훅 {name}을(를) 만들었습니다." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor}님이 웹훅 {name}을(를) 만들었습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor}님이 웹훅 {namedTarget}을(를) 생성했습니다." @@ -103,49 +293,209 @@ msgstr "{actor}님이 웹훅 {namedTarget}을(를) 생성했습니다." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor}님이 메시지 {0}{bulkCount, plural, one {개} other {개}}를 삭제했습니다{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor}님이 {channel}에서 {count, plural, one {메시지 1개} other {메시지 #개}}를 삭제했습니다." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor}님이 메시지 {count, plural, one {#개} other {#개}}를 삭제했습니다." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor}님이 {channel}에서 메시지를 삭제했습니다." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor}님이 메시지를 삭제했습니다." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor}님이 메시지를 삭제했습니다{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor}님이 스티커를 삭제했습니다." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor}님이 웹훅을 삭제했습니다." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor}님이 이모티콘을 삭제했습니다." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor}님이 여러 개의 메시지를 삭제했습니다{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor}님이 {channel}에서 메시지를 몇 개 삭제했습니다." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor}님이 메시지를 일부 삭제했습니다." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor}님이 {channel} 카테고리를 삭제했습니다." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor}님이 {channel} 채널을 삭제했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor}님이 채널 {namedTarget}을(를) 삭제했습니다." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor}님이 이모티콘 {emoji}을(를) 삭제했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor}님이 이모티콘 {namedTarget}을(를) 삭제했습니다." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor}님이 {channel}의 초대 링크 {code}을(를) 삭제했습니다." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor}님이 초대 링크 {code}을(를) 삭제했습니다." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor}님이 초대 {namedTarget}을(를) 삭제했습니다{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor}님이 링크 채널 {channel}을(를) 삭제했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor}님이 역할 {namedTarget}을(를) 삭제했습니다." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor}님이 {role} 역할을 삭제했습니다." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor}님이 스티커 {name}을(를) 삭제했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor}님이 스티커 {namedTarget}을(를) 삭제했습니다." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor}님이 텍스트 채널 {channel}을(를) 삭제했습니다." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor}님이 음성 채널 {channel}을(를) 삭제했습니다." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor}님이 {channel}에서 {name} 웹훅을 삭제했습니다." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor}님이 웹훅 {name}을(를) 삭제했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor}님이 웹훅 {namedTarget}을(를) 삭제했습니다." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor}님이 {target}님을 {channel}에서 연결 해제했습니다." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor}님이 {target}님의 음성 채널 연결을 해제했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor}님이 {targetMember}님을 음성 채널에서 연결 해제했습니다." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor}님이 {channel}에서 연결을 해제했습니다." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor}님이 음성 채널에서 연결을 해제했습니다." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor}님이 {target}님에게 {role} 역할을 부여했습니다." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor}님이 {target}님을 추방했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor}님이 {targetMember}님을 추방했습니다." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor}님이 이 커뮤니티에서 {target}님이 다시 다른 사람들의 소리를 들을 수 있도록 했습니다." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor}님이 이 앱 버전에서 표시할 수 없는 변경 사항을 만들었습니다." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor}님이 {oldChannel}에서 {target}님을 {newChannel}(으)로 이동했습니다." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor}님이 {target}님을 {channel}(으)로 이동했습니다." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor}님이 {target}님을 다른 음성 채널로 이동했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor}님이 {targetMember}님을 {channelNode}(으)로 이동했습니다." @@ -154,16 +504,68 @@ msgstr "{actor}님이 {targetMember}님을 {channelNode}(으)로 이동했습니 msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor}님이 {targetMember}님을 다른 음성 채널로 이동했습니다." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor}님이 {oldChannel}에서 {newChannel}(으)로 이동했습니다." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor}님이 멤버 목록에서 {role} 역할을 아래로 이동했습니다." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor}님이 역할 목록에서 {role} 역할을 아래로 옮겼습니다." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor}님이 멤버 목록에서 {role} 역할을 위로 옮겼습니다." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor}님이 역할 목록에서 {role} 역할을 위로 옮겼습니다." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor}님이 {channel}(으)로 이동했습니다." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor}님이 다른 음성 채널로 이동했습니다." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor}님이 초대를 일시 중지했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor}님이 {targetEntity}에 대한 감사 활동을 수행했습니다." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor}님이 {channel}에 메시지를 고정했습니다." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor}님이 메시지를 고정했습니다." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor}님이 메시지를 고정했습니다{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor}님이 활동이 없는 멤버를 내보냈습니다." @@ -179,19 +581,249 @@ msgstr "{actor}님이 {channelNode}에서 {targetEntity}의 채널 권한을 삭 msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor}님이 {targetEntity}의 채널 권한을 삭제했습니다." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor}님이 {target}님의 닉네임 {nick}을(를) 삭제했습니다." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor}님이 {channel}에서 {user}님의 권한 재정의를 삭제했습니다." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor}님이 {channel}에서 @everyone의 권한 재정의를 삭제했습니다." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor}님이 {channel}에서 {role} 역할의 권한 재정의를 삭제했습니다." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor}님이 {target}님에게서 {role} 역할을 제거했습니다." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor}님이 {target}님의 타임아웃을 해제했습니다." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor}님이 맞춤 URL {code}을(를) 삭제했습니다." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor}님이 커뮤니티 프로필 강조 색상을 삭제했습니다." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor}님이 커뮤니티 프로필 아바타를 삭제했습니다." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor}님이 커뮤니티 프로필 배너를 삭제했습니다." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor}님이 커뮤니티 프로필 소개를 삭제했습니다." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor}님이 커뮤니티 프로필의 대명사를 삭제했습니다." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor}님이 닉네임 {nick}을(를) 삭제했습니다." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor}님이 카테고리 {oldName}의 이름을 {newName}(으)로 변경했습니다." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor}님이 채널 {oldName}을(를) {newName}(으)로 변경했습니다." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor}님이 커뮤니티 이름을 {oldName}에서 {newName}(으)로 변경했습니다." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor}님이 이모티콘 {oldEmoji}의 이름을 {newEmoji}(으)로 변경했습니다." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor}님이 링크 채널 {oldName}의 이름을 {newName}(으)로 변경했습니다." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor}님이 역할을 {oldName}에서 {newName}(으)로 변경했습니다." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor}님이 스티커 {oldName}의 이름을 {newName}(으)로 변경했습니다." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor}님이 텍스트 채널 {oldName}의 이름을 {newName}(으)로 변경했습니다." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor}님이 음성 채널 {oldName}을(를) {newName}(으)로 변경했습니다." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor}님이 웹훅 {oldName}의 이름을 {newName}(으)로 변경했습니다." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor}님이 역할 {role}의 멤버 목록 위치를 재설정했습니다." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor}님이 초대를 다시 시작했습니다." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor}님이 역할 {role}의 멤버 목록 위치를 설정했습니다." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor}님이 {target}님의 닉네임을 {nick}(으)로 설정했습니다." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor}님이 맞춤 URL을 {code}(으)로 설정했습니다." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor}님이 커뮤니티 프로필 강조 색상을 {color}(으)로 설정했습니다." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor}님이 커뮤니티 프로필 아바타를 설정했습니다." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor}님이 커뮤니티 프로필 배너를 설정했습니다." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor}님이 커뮤니티 프로필 소개를 {text}(으)로 설정했습니다." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor}님이 커뮤니티 프로필의 대명사를 {text}(으)로 설정했습니다." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor}님이 닉네임을 {nick}(으)로 설정했습니다." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor}님이 이 커뮤니티에서 {target}님이 다른 사람의 소리를 듣지 못하도록 차단했습니다." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor}님이 {target}님을 {date}까지 타임아웃시켰습니다." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor}님이 {user}님에게 커뮤니티 소유권을 이전했습니다." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor}님이 이 커뮤니티에서 {target}님의 마이크를 다시 켰습니다." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor}님이 이 커뮤니티에서 {target}님의 마이크를 껐습니다." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor}님이 {target}님의 차단을 해제했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor}님이 {targetMember}님을 차단 해제했습니다." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor}님이 {channel}에서 메시지를 고정 해제했습니다." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor}님이 메시지를 고정 해제했습니다." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor}님이 메시지 고정을 해제했습니다{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor}님이 {target}님을 업데이트했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor}님이 {targetMember}님을 업데이트했습니다." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor}님이 스티커를 업데이트했습니다." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor}님이 웹훅을 업데이트했습니다." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor}님이 이모티콘을 업데이트했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor}님이 {channelNode}에서 {targetEntity}의 채널 권한을 업데이트했습니다." @@ -204,35 +836,112 @@ msgstr "{actor}님이 {targetEntity}의 채널 권한을 업데이트했습니 msgid "{actor} updated roles for {targetMember}." msgstr "{actor}님이 {targetMember}님의 역할을 업데이트했습니다." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor}님이 {channel} 카테고리를 업데이트했습니다." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor}님이 {channel} 채널을 업데이트했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor}님이 채널 {namedTarget}을(를) 업데이트했습니다." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor}님이 커뮤니티 설정을 업데이트했습니다." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor}님이 이모티콘 {emoji}을(를) 업데이트했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor}님이 이모티콘 {namedTarget}을(를) 업데이트했습니다." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor}님이 초대 링크 {code}를 업데이트했습니다." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor}님이 초대 {namedTarget}을(를) 업데이트했습니다{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor}님이 링크 채널 {channel}을(를) 업데이트했습니다." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor}님이 {channel}에서 {user}님의 권한 재정의를 업데이트했습니다." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor}님이 {channel}에서 @everyone의 권한 재정의를 업데이트했습니다." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor}님이 {channel}에서 {role} 역할의 권한 재정의를 업데이트했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor}님이 역할 {namedTarget}을(를) 업데이트했습니다." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor}님이 {role} 역할을 업데이트했습니다." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor}님이 {target}님의 역할을 업데이트했습니다." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor}님이 스티커 {name}을(를) 업데이트했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor}님이 스티커 {namedTarget}을(를) 업데이트했습니다." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor}님이 텍스트 채널 {channel}을(를) 업데이트했습니다." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor}님이 음성 채널 {channel}을(를) 업데이트했습니다." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor}님이 웹훅 {name}을(를) 업데이트했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor}님이 웹훅 {namedTarget}을(를) 업데이트했습니다." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor}님이 커뮤니티 프로필을 업데이트했습니다." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {#개 항목} other {#개 항목}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {#명} other {#명}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {권한 #개 더} other {권한 #개 더}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {#개의 공통 커뮤니티} other {#개의 공통 커뮤니티}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {#개 기기 표시} other {#개 기기 표시}}" msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {#개 기기에서 로그아웃} other {#개 기기에서 로그아웃}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {초대 링크 사용 횟수가 #회로 제한되었습니다.} other {초대 링크 사용 횟수가 #회로 제한되었습니다.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {초대 링크가 #번 사용되었습니다.} other {초대 링크가 #번 사용되었습니다.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "{guildName} 채널" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "활동" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "활동 로그" @@ -2713,10 +3437,60 @@ msgstr "{0}을(를) 추가했습니다." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "로컬 파일 참조 {length, plural, one {#개} other {#개}}를 추가했습니다." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "채팅 임베드 배경을 추가했습니다." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "커뮤니티 배너를 추가했습니다." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "커뮤니티 아이콘을 추가했습니다." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "{text}라는 콘텐츠 경고를 추가했습니다." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "콘텐츠 경고를 추가했습니다." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "아바타를 추가했습니다." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "초대 배경을 추가했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "역할이 추가되었습니다." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "멤버의 커뮤니티 프로필 아바타를 추가했습니다." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "멤버의 커뮤니티 프로필 배너를 추가했습니다." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "{role} 역할을 추가했습니다." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "정렬 컨트롤은 더 넓은 화면에서만 사용할 수 있습니 #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "모든 <0/>을 평생 이용할 수 있습니다. 청구도 갱신도 없습니다." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "모든 작업" @@ -3001,10 +3775,12 @@ msgstr "모든 언어" msgid "All members" msgstr "모든 멤버" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "전체 기간" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "모든 사용자" @@ -3197,6 +3973,16 @@ msgstr "{0}을(를) 허용하고 {1}에 대한 허용을 제거했습니다." msgid "Allowed {0}." msgstr "{0}을(를) 허용했습니다." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "{permissions} 권한을 허용했습니다." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "모든 멤버가 이 역할을 멘션할 수 있도록 허용했습니다." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "허용된 발신자" @@ -3205,15 +3991,35 @@ msgstr "허용된 발신자" msgid "Allowed everyone to mention this role." msgstr "모든 사람이 이 역할을 멘션할 수 있도록 허용했습니다." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "텍스트 채널 이름을 자유롭게 지정할 수 있도록 허용했습니다." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "허용된 초대" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "다른 커뮤니티의 멤버가 이 커뮤니티의 이모티콘을 복제할 수 있도록 허용했습니다." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "다른 커뮤니티의 멤버가 이 커뮤니티의 스티커를 복제할 수 있도록 허용했습니다." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "리디렉션 허용" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "멤버당 최대 {count, plural, one {#개의 연결} other {#개의 연결}}까지 허용했습니다." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "멤버 차단" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "커뮤니티에서 멤버를 차단하고, 최근 메시지를 삭제할 수 있습니다." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "차단 사유" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "사용자 차단" msgid "Blocked" msgstr "차단됨" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "멤버의 메시지 보내기, 반응하기, 음성 참여를 {date}까지 차단했습니다." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "봇" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "봇 추가됨" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "카테고리 삭제됨" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "카테고리가 가득 찼습니다" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "가운데" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "가운데 정렬" @@ -6298,11 +7116,183 @@ msgstr "사용자 이름 변경" msgid "Changed nickname from {0} to {1}." msgstr "닉네임을 {0}에서 {1}(으)로 변경했습니다." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "{oldDuration}에서 {newDuration}(으)로 슬로우 모드를 변경했습니다." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "AFK 채널을 {oldChannel}에서 {newChannel}(으)로 변경했습니다." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "자리 비움 시간 제한을 {oldDuration}에서 {newDuration}(으)로 변경했습니다." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "오디오 품질을 {oldKbps}kbps에서 {newKbps}kbps로 변경했습니다." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "아바타를 변경했습니다." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "비트레이트를 {0}으로 변경했습니다." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "메시지 보내기, 반응하기, 음성 참여 차단을 {date}까지로 변경했습니다." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "채팅 임베드 배경을 변경했습니다." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "커뮤니티 배너를 변경했습니다." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "커뮤니티 아이콘을 변경했습니다." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "멤버당 연결 수를 {oldCount}개에서 {newCount}개로 변경했습니다." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "콘텐츠 경고 문구를 {oldText}에서 {newText}(으)로 변경했습니다." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "커스텀 역할 아이콘을 변경했습니다." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "맞춤 경고 문구를 {oldText}에서 {newText}(으)로 변경했습니다." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "기본 알림 설정을 {oldSetting}에서 {newSetting}(으)로 변경했습니다." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "설명을 {oldText}에서 {newText}(으)로 변경했습니다." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "음란물 필터를 {oldFilter}에서 {newFilter}(으)로 변경했습니다." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "초대 배경 정렬을 {oldAlignment}에서 {newAlignment}(으)로 변경했습니다." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "초대 배경을 변경했습니다." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "{oldUrl}에서 {newUrl}(으)로 링크를 변경했습니다." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "멤버의 커뮤니티 프로필 아바타를 변경했습니다." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "멤버의 커뮤니티 프로필 배너를 변경했습니다." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "멤버의 커뮤니티 프로필 소개를 {text}(으)로 변경했습니다." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "메시지 기록 공개 시점을 {oldDate}에서 {newDate}(으)로 변경했습니다." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "이름을 {oldName}에서 {newName}(으)로 변경했습니다." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "{oldNick}에서 {newNick}(으)로 닉네임을 변경했습니다." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "역할 색상을 {oldColor}에서 {newColor}(으)로 변경했습니다." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "역할 아이콘을 {oldEmoji}에서 {newEmoji}(으)로 변경했습니다." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "시스템 채널을 {oldChannel}에서 {newChannel}(으)로 변경했습니다." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "{oldText}에서 {newText}(으)로 주제를 변경했습니다." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "사용자 제한을 {oldCount}명에서 {newCount}명으로 변경했습니다." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "맞춤 URL을 {oldCode}에서 {newCode}(으)로 변경했습니다." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "인증 레벨을 {oldLevel}에서 {newLevel}(으)로 변경했습니다." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "음성 지역을 {oldRegion}에서 {newRegion}(으)로 변경했습니다." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "채널" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "채널 또는 카테고리" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "채널 권한 재정의 추가됨" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "채널 권한 재정의 삭제됨" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "채널 권한 재정의 업데이트됨" @@ -7815,7 +8805,7 @@ msgstr "250명이 넘는 커뮤니티는 \"멘션만\" 설정으로 자동 전 #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "이 대화에서 내 메시지를 삭제할까요?" msgid "Deleted" msgstr "삭제됨" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "멤버의 최근 {duration} 동안의 메시지 기록을 삭제했습니다." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "삭제선" msgid "Deleted your messages." msgstr "메시지를 삭제했습니다." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "삭제된-카테고리" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "삭제된-채널" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "삭제된-역할" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "{0}을(를) 거부하고 {1}에 대한 거부를 제거했습니다." msgid "Denied {0}." msgstr "{0} 거부됨." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "{permissions}을(를) 거부했습니다." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "임베드를 다시 표시했습니다" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "이모티콘 복제 활성화됨" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "이모티콘 생성됨" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "이모티콘 삭제됨" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "이모티콘 슬롯이 가득 찼습니다" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "이모티콘 업데이트됨" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "계정 생성일로 필터링" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "작업으로 필터링" @@ -14572,18 +15587,22 @@ msgstr "역할로 필터링" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "사용자로 필터링" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "모두 필터링" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "역할 없는 멤버 필터링" @@ -15890,6 +16909,11 @@ msgstr "{0} 부여됨, {1} 취소됨." msgid "Granted {0}." msgstr "{0} 부여됨." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "{permissions} 권한을 부여했습니다." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "안녕하세요, {username}님! 즐거운 시간 보내시길 바랍니 msgid "Hey, {username}, welcome aboard!" msgstr "안녕하세요, {username}님! 가입을 환영합니다!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "시스템 채널에서 참여 메시지를 숨겼습니다." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "커뮤니티 소유자 왕관을 숨겼습니다." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "내 카메라를 숨길까요?" msgid "Hide your own screen share?" msgstr "내 화면 공유를 숨길까요?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "높음" @@ -17688,7 +18724,7 @@ msgstr "초대하기" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "초대 코드는 {0}입니다." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "초대 생성됨" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "초대 삭제됨" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "초대를 사용할 수 없음" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "초대 업데이트됨" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "왼쪽 {keyName}" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "왼쪽 정렬" @@ -18745,6 +19783,11 @@ msgstr "열려 있는 채널에 새 메시지가 도착하면 화면 낭독기 msgid "Let the community self-moderate" msgstr "커뮤니티가 자율적으로 운영되도록 허용" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "이 커뮤니티에서 멤버가 다른 사람들의 소리를 다시 들을 수 있도록 허용했습니다." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "데스크톱 앱 재시작 시 사용자 지정 CSS가 투명한 창 영역을 표시하도록 허용합니다." @@ -18815,6 +19858,16 @@ msgstr "좋아요 표시했습니다." msgid "Likes: <0>{countLabel}" msgstr "좋아요: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "모든 역할을 멘션할 수 있는 권한이 있는 멤버만 이 역할을 멘션할 수 있도록 제한했습니다." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "채널에 참여할 수 있는 사용자 수를 {count, plural, one {#명} other {#명}}으로 제한했습니다." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "루이지애나" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "낮음" @@ -19204,6 +20259,11 @@ msgstr "macOS 기본값" msgid "macOS permissions" msgstr "macOS 권한" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "채널의 성인 콘텐츠 설정이 상속되도록 변경했습니다." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "이모티콘을 애니메이션으로 표시했습니다." msgid "Marked emoji as static." msgstr "이모티콘을 정적 이미지로 표시했습니다." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "채널에 성인 콘텐츠가 포함되어 있다고 표시했습니다." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "채널에 성인 콘텐츠가 포함되어 있지 않다고 표시했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "멤버를 영구 멤버로 표시했습니다." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "재생 중지" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "보통" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "중간 크기(기본)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "멤버" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "{displayName}님에 대한 멤버 작업" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "멤버 차단됨" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "멤버 연결 끊김" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "멤버 추방됨" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "현재 이 커뮤니티의 멤버 목록을 불러올 수 없습니다" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "멤버 이동됨" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "멤버를 찾을 수 없음" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "멤버 역할 업데이트됨" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "멤버 가입일" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "멤버 차단 해제됨" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "멤버 업데이트됨" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "역할이 부여되지 않으면 오프라인 시 멤버가 제거됩니다." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "멤버 정리됨" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "{readMessageHistoryPermissionLabel} 권한이 없는 멤버는 이 날짜 이후에 전송된 메시지를 볼 수 있습니다." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "멤버 선택됨" @@ -20077,8 +21149,10 @@ msgstr "회원님을 멘션한 메시지가 {recentMentionsRetentionDays}일 동 msgid "Mentions of you show up here for {retentionDays} days." msgstr "회원님을 멘션한 메시지가 {retentionDays}일 동안 여기에 표시됩니다." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "멘션만" @@ -20104,7 +21178,7 @@ msgstr "메시지" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "메시지" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "메시지 디버그" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "메시지 삭제됨" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "{channelName} 메시지 목록" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "메시지 고정됨" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "메시지 시간" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "메시지 고정 해제됨" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "메시지 및 미디어" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "메시지 삭제됨" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "모더레이션" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "모더레이션 작업 및 커뮤니티 변경 내역이 여기에 표시됩니다." @@ -20915,16 +21989,51 @@ msgstr "이동" msgid "Move to…" msgstr "채널로 이동…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "{oldChannel}에서 {newChannel}(으)로 이동했습니다." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "채널을 {oldCategory} 카테고리에서 {newCategory} 카테고리로 이동했습니다." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "채널을 {category} 카테고리로 이동했습니다." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "채널을 {0} 카테고리로 이동했습니다." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "멤버 목록에서 역할을 아래로 이동했습니다." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "역할을 역할 목록에서 아래로 이동했습니다." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "역할을 {0} 위치로 이동했습니다." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "역할을 멤버 목록에서 위로 이동했습니다." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "역할 목록에서 역할을 위로 이동했습니다." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "새 메시지" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "새 메시지" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "참조된 로컬 파일 없음" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "아직 활동 로그가 없습니다" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "사유 없음" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "사유가 제공되지 않았습니다." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "무변환" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "무변환" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "OAuth2 URL 빌더" msgid "Objects" msgstr "사물" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "사물" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "꺼짐" @@ -23523,6 +24636,21 @@ msgstr "원래 메시지를 불러오지 못했습니다" msgid "Original message was deleted" msgstr "원래 메시지가 삭제되었습니다" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "원래 {user}님이 {date}에 차단했습니다." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "{user}님이 원래 차단했습니다." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "{date}에 차단되었습니다." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "동작 줄이기로 인해 일시 중지되었습니다. 켜면 움직 msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "동작 줄이기로 인해 일시 중지되었습니다. 켜면 GIF가 계속 재생됩니다." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "초대를 일시 중지했습니다." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "회원님의 계정과 모든 관련 데이터가 영구적으로 삭제 msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "DM, 그룹 DM, 커뮤니티에서 보낸 메시지를 영구적으로 삭제합니다. 이 작업은 백그라운드에서 실행되며, 완료되면 DM으로 알려드립니다." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "권한 재정의 추가됨" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "권한 재정의 삭제됨" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "권한 재정의 업데이트됨" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "업그레이드할 준비가 되셨나요?" msgid "Real-time" msgstr "실시간" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "사유" @@ -26291,26 +27440,166 @@ msgstr "{oldLabel} 역할을 삭제했습니다." msgid "Removed roles." msgstr "역할이 제거되었습니다." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "AFK 채널을 삭제했습니다." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "아바타를 삭제했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "채널을 카테고리에서 제거했습니다." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "채널을 {category} 카테고리에서 제거했습니다." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "채팅 임베드 배경을 삭제했습니다." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "커뮤니티 배너를 삭제했습니다." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "커뮤니티 아이콘을 삭제했습니다." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "콘텐츠 경고 문구를 삭제했습니다." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "콘텐츠 경고를 삭제했습니다." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "커스텀 역할 아이콘을 삭제했습니다." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "맞춤 경고 문구를 삭제했습니다." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "{text} 설명을 삭제했습니다." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "초대 배경을 삭제했습니다." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "링크를 삭제했습니다." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "멤버의 커뮤니티 프로필 강조 색상을 삭제했습니다." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "멤버의 커뮤니티 프로필 아바타를 삭제했습니다." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "멤버의 커뮤니티 프로필 배너를 삭제했습니다." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "멤버의 커뮤니티 프로필 소개를 삭제했습니다." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "멤버의 커뮤니티 프로필 대명사를 삭제했습니다." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "메시지 기록 공개 시점을 삭제했습니다." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "닉네임 {nick}을(를) 삭제했습니다." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "{permissions}에 대한 권한 재정의를 삭제했습니다." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "{role} 역할을 삭제했습니다." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "역할 색상을 삭제했습니다." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "역할 아이콘을 삭제했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "규칙 채널을 해제했습니다." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "시스템 채널을 해제했습니다." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "타임아웃을 해제했습니다." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "{text} 주제를 삭제했습니다." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "유니코드 이모티콘을 제거했습니다." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "사용자 제한을 해제했습니다." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "맞춤 URL {code}을(를) 삭제했습니다." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "{targetUserTag}님의 타임아웃을 해제했습니다" @@ -26381,6 +27670,11 @@ msgstr "스티커 이름을 {0}(으)로 변경했습니다." msgid "Renamed the channel to {0}." msgstr "채널 이름을 {0}(으)로 변경했습니다." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "커뮤니티 이름을 {oldName}에서 {newName}(으)로 변경했습니다." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "모더레이터가 멤버를 차단, 추방, 타임아웃하거나 메 msgid "Required" msgstr "필수" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "모더레이션 작업에 2단계 인증을 필수로 설정했습니다." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "간격 재설정" msgid "Reset the connection limit." msgstr "연결 제한을 재설정했습니다." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "역할의 멤버 목록 위치를 재설정했습니다." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "이 역할의 멘션을 권한이 있는 멤버로 제한했습니다." msgid "Resubscribe" msgstr "재구독" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "초대를 다시 시작했습니다." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "로그인으로 돌아가기" @@ -27330,6 +28639,11 @@ msgstr "이 초대를 취소하시겠어요? 되돌릴 수 없어요." msgid "Revoked {0}." msgstr "{0} 취소됨." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "{permissions} 권한을 회수했습니다." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "오른쪽 {keyName}" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "오른쪽 정렬" @@ -27408,7 +28724,7 @@ msgstr "벨소리" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "역할" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "역할 색상" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "역할 생성됨" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "역할이 생성되었습니다" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "역할 삭제됨" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "역할 이름은 필수입니다" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "역할 업데이트됨" @@ -28930,11 +30246,21 @@ msgstr "세션" msgid "Set {fieldNode} to {0}." msgstr "{fieldNode}을(를) {0}(으)로 설정했습니다." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "커스텀 역할 아이콘을 설정했습니다." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "상태 메시지 설정" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "역할의 멤버 목록 위치를 설정했습니다." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "역할 색상을 <0>{hex} <1/>(으)로 설정했습니다." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "슬로우 모드를 {0} {seconds, plural, other {초}}로 설정했습니다." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "슬로우 모드를 {duration}(으)로 설정했습니다." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "상태 설정" msgid "Set the AFK channel to {0}." msgstr "자리 비움 채널을 {0}(으)로 설정했습니다." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "AFK 채널을 {channel}(으)로 설정했습니다." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "자리 비움 시간 제한을 {0}초로 설정했습니다." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "오디오 품질을 {kbps}kbps로 설정했습니다." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "채널 유형을 {0}(으)로 설정했습니다." msgid "Set the connection limit to {0}." msgstr "연결 제한을 {0}(으)로 설정했습니다." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "콘텐츠 경고 문구를 {text}(으)로 설정했습니다." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "맞춤 경고 문구를 {text}(으)로 설정했습니다." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "설명을 {text}(으)로 설정했습니다." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "초대 스플래시 정렬을 {0}(으)로 설정했습니다." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "링크를 {url}(으)로 설정했습니다." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "멤버의 커뮤니티 프로필 강조 색상을 {color}(으)로 설정했습니다." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "멤버의 커뮤니티 프로필 소개를 {text}(으)로 설정했습니다." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "멤버의 커뮤니티 프로필 대명사를 {text}(으)로 설정했습니다." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "메시지 기록 공개 시점을 {date}(으)로 설정했습니다." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "닉네임을 {nick}(으)로 설정했습니다." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "클라이언트가 표시할 공개 제품 이름, 테마 색상 및 이미지 에셋을 설정하세요." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "역할 색상을 {color}(으)로 설정했습니다." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "역할 아이콘을 {emoji}(으)로 설정했습니다." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "규칙 채널을 {0}(으)로 설정했습니다." msgid "Set the system channel to {0}." msgstr "시스템 채널을 {0}(으)로 설정했습니다." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "시스템 채널을 {channel}(으)로 설정했습니다." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "주제를 {text}(으)로 설정했습니다." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "사용자 제한을 {0}(으)로 설정했습니다." msgid "Set the vanity URL to {0}." msgstr "맞춤 URL을 {0}(으)로 설정했습니다." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "맞춤 URL을 {code}(으)로 설정했습니다." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "음성 지역을 {region}(으)로 설정했습니다." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "음성 지역을 자동으로 설정했습니다." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "이 커뮤니티에 내 글로벌 프로필 배너 표시" msgid "Show your Visionary as a regular subscription instead" msgstr "Visionary를 일반 구독으로 표시" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "이 역할을 가진 멤버를 멤버 목록의 별도 섹션에 표시했습니다." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "환불 처리 중 문제가 발생했습니다. 문제가 계속되면 고객지원팀에 문의하세요." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "활동 로그를 로드하는 동안 문제가 발생했습니다." @@ -31105,6 +32531,11 @@ msgstr "음성 통화 시작" msgid "Start with computer" msgstr "컴퓨터 시작 시 실행" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "이 역할이 있는 멤버를 별도로 표시하기 시작했습니다." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "스티커" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "스티커를 충분히 압축할 수 없습니다" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "스티커 생성됨" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "스티커 삭제됨" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "스티커 슬롯이 가득 찼습니다" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "스티커 업데이트됨" @@ -31412,6 +32843,46 @@ msgstr "스트림 시청 중지" msgid "Stop." msgstr "멈추세요." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "텍스트 채널 이름을 자유롭게 지정할 수 없도록 변경했습니다." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "다른 커뮤니티의 멤버가 이 커뮤니티의 이모티콘을 복제하지 못하도록 차단했습니다." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "다른 커뮤니티의 멤버가 이 커뮤니티의 스티커를 복제하지 못하도록 차단했습니다." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "이 역할을 가진 멤버를 따로 표시하지 않도록 변경했습니다." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "시스템 채널에서 참여 메시지를 더 이상 숨기지 않도록 변경했습니다." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "커뮤니티 소유자 왕관을 더 이상 숨기지 않도록 변경했습니다." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "모더레이션 작업에 2단계 인증을 더 이상 요구하지 않도록 변경했습니다." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "이 커뮤니티에서 멤버가 다른 사람의 소리를 듣지 못하도록 차단했습니다." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "카테고리와 동기화" msgid "Syntax highlighting" msgstr "구문 강조" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "시스템" @@ -32449,6 +33922,16 @@ msgstr "앱이 비정상적으로 종료되었습니다. 이 문제를 해결할 msgid "The app should now be signed in to your account." msgstr "이제 앱에서 계정에 로그인되어 있을 거예요." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "차단은 이미 {date}에 만료되었습니다." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "차단은 {date}에 해제될 예정이었습니다." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "봇이 <0>{destinationName}에 추가되었습니다." @@ -32491,6 +33974,11 @@ msgstr "데스크톱 업데이트가 다운로드되었습니다. {productName} msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "다운로드한 파일은 컴퓨터에 저장됩니다. 평소 사용하는 패키지 관리자로 설치하세요." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "이모티콘은 {user}님이 업로드했습니다." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "파일에 <0>{dnsUrl}에서 가져올 인증 토큰이 포함되어 있습니다." @@ -32504,6 +33992,51 @@ msgstr "업로드하려는 파일이 최대 크기 {maxSizeFormatted}을(를) msgid "The following people can't be added to this group DM:" msgstr "다음 사용자는 그룹 DM에 추가할 수 없습니다:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "초대 링크는 {user}님이 {date}에 만들었습니다." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "초대 링크는 {user}님이 만들었습니다." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "초대 링크는 {date}에 생성되었습니다." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "초대 링크가 사용된 적이 없습니다." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "초대 링크는 {date}에 만료될 예정이었습니다." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "초대 링크 사용 횟수 제한이 없도록 설정되었습니다." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "초대 링크가 {duration} 후에 만료되도록 설정되었습니다." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "초대 링크가 임시 멤버십을 부여하도록 설정되었습니다." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "초대 링크가 만료되지 않도록 설정되었습니다." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "커뮤니티 멤버 대부분이 사용하는 언어입니다. 디스커버리 결과를 필터링하는 데 사용됩니다." @@ -32518,6 +34051,11 @@ msgstr "링크가 여전히 유효할 수 있습니다. 잠시 후에 다시 시 msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "성인 콘텐츠 확인이 취소되었습니다. 이 탭을 닫고 앱에서 다시 시도할 수 있습니다." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "멤버의 임시 자격이 해제되었습니다." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "새 가격은 {effectiveDate}에 적용될 예정입니다." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "새로운 음성 채널은 <0>{channelLabel}의 권한, 사용자 제한 및 비트레이트를 재사용합니다." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "재정의가 {permissions} 권한을 허용했습니다." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "재정의가 {permissions} 권한을 거부했습니다." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "찾으시는 페이지가 없거나 이동되었어요." @@ -32565,6 +34113,11 @@ msgstr "제공된 redirect_uri가 이 애플리케이션에 등록되지 않았 msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "제공된 redirect_uri는 HTTP 또는 HTTPS를 사용해야 합니다." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "역할이 {permissions} 권한을 부여했습니다." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "스티커가 애니메이션으로 업로드되었습니다." msgid "The sticker was uploaded as static." msgstr "스티커가 정적 이미지로 업로드되었습니다." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "스티커는 {user}님이 업로드했습니다." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "시스템에서 {target}님에게 {role} 역할을 부여했습니다." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "시스템에서 {role} 역할을 {target}님에게서 제거했습니다." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "사용자 이름 <0>{fluxerTag}은(는) 이미 사용 중입니다. msgid "The verification code is invalid or expired." msgstr "인증 코드가 유효하지 않거나 만료되었습니다." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "웹훅은 {user}님이 만들었습니다." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "이 카드는 청구 국가와 일치하지 않아 해당 지역 통화에 사용할 수 없습니다. 현지 카드를 사용하거나 {productName}으로 돌아가 다른 결제 방법을 선택하세요." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "이 카테고리에는 이미 최대 {maxChannelsPerCategory}개의 채널이 있습니다." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "커뮤니티 전체의 모더레이터 활동을 추적합니다." @@ -33953,6 +35526,11 @@ msgstr "{userName}님에게 그룹 소유권을 이전하시겠어요?" msgid "Transfer ownership" msgstr "소유권 이전" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "커뮤니티 소유권을 {user}님께 이전했습니다." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "스트리밍 개인 정보 보호 켜기" msgid "Turn text smileys into emoji" msgstr "텍스트 스마일리를 이모티콘으로 바꾸기" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "성인용 콘텐츠를 사용 중지했습니다." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "슬로우 모드를 해제했습니다." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "콘텐츠 경고를 껐습니다." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "분리된 배너를 껐습니다." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "이 커뮤니티에서 멤버의 마이크를 껐습니다." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "성인 콘텐츠를 켰습니다." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "콘텐츠 경고를 켰습니다." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "분리된 배너를 켰습니다." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "이 커뮤니티에서 멤버의 마이크를 다시 켰습니다." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "범위 설정을 해제하면 앱이 제대로 작동하지 않을 수 있습니다." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "우크라이나어" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "활동 로그를 불러올 수 없습니다" @@ -34859,6 +36482,7 @@ msgstr "알 수 없는 대상" msgid "unknown user" msgstr "알 수 없는 사용자" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "알 수 없는 사용자" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "이 커뮤니티에서만 사용됩니다." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "버몬트" msgid "Version" msgstr "버전" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "매우 높음" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "웹캠" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "웹훅" @@ -37681,13 +39308,13 @@ msgstr "웹훅 {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "웹훅 생성됨" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "웹훅 삭제됨" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "웹훅 이름" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "웹훅 업데이트됨" diff --git a/fluxer_app/src/features/i18n/locales/lt/messages.po b/fluxer_app/src/features/i18n/locales/lt/messages.po index 33762ea9e..5a5dcb839 100644 --- a/fluxer_app/src/features/i18n/locales/lt/messages.po +++ b/fluxer_app/src/features/i18n/locales/lt/messages.po @@ -56,6 +56,31 @@ msgstr "{a} rašo..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} ir {c} rašo..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} pridėjo leidimų perrašymą nariui {user} kanale {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} pridėjo leidimų perrašymą @everyone kanale {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} pridėjo leidimų perrašymą vaidmeniui {role} kanale {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} pridėjo lipduką." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} pridėjo jaustuką." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} pridėjo kanalo leidimus, skirtus {targetEntity}, kanale {channelNode}." @@ -64,35 +89,200 @@ msgstr "{actor} pridėjo kanalo leidimus, skirtus {targetEntity}, kanale {channe msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} pridėjo kanalo leidimus, skirtus {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} pridėjo robotą {target} kaip laikinąjį narį." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} pridėjo robotą {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} pridėjo botą {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} pridėjo jaustuką {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} pridėjo jaustuką {namedTarget}." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} pridėjo lipduką {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} pridėjo lipduką {namedTarget}." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} užblokavo {target}, trukmė: {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} užblokavo {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} užblokavo {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} pakeitė {target} draudimo siųsti žinutes, reaguoti ir prisijungti prie balso kanalų pabaigą į {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} pakeitė {target} slapyvardį iš {oldNick} į {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} pakeitė kategorijos {channel} leidimų perrašymus." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} pakeitė kanalo {channel} leidimų perrašymus." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} pakeitė nuorodos kanalo {channel} leidimų perrašymus." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} pakeitė tekstinio kanalo {channel} leidimų perrašymus." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} pakeitė balso kanalo {channel} leidimų perrašymus." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} pakeitė pasirinktinį URL iš {oldCode} į {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} pakeitė savo bendruomenės profilio avatarą." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} pakeitė savo bendruomenės profilio reklamjuostę." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} pakeitė savo bendruomenės profilio biografiją į {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} pakeitė savo slapyvardį iš {oldNick} į {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} sukūrė webhooką." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} sukūrė kategoriją {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} sukūrė kanalą {channel} kategorijoje {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} sukūrė kanalą {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} sukūrė kanalą {namedTarget}." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} sukūrė kvietimą {code} į {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} sukūrė kvietimą {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} sukūrė kvietimą {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} sukūrė nuorodos kanalą {channel} kategorijoje {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} sukūrė nuorodos kanalą {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} sukūrė vaidmenį {namedTarget}." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} sukūrė vaidmenį {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} sukūrė tekstinį kanalą {channel} kategorijoje {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} sukūrė tekstinį kanalą {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} sukūrė balso kanalą {channel} kategorijoje {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} sukūrė balso kanalą {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} sukūrė webhooką {name} kanale {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} sukūrė webhooką {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} sukūrė webhooką {namedTarget}." @@ -103,49 +293,209 @@ msgstr "{actor} sukūrė webhooką {namedTarget}." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} ištrynė {0} {bulkCount, plural, one {žinutę} few {žinutes} other {žinučių}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} ištrynė {count, plural, one {# žinutę} few {# žinutes} other {# žinučių}} kanale {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} ištrynė {count, plural, one {# žinutę} few {# žinutes} other {# žinučių}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} ištrynė žinutę kanale {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} ištrynė žinutę." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} ištrynė žinutę{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} ištrynė lipduką." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} ištrynė webhooką." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} ištrynė jaustuką." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} ištrynė kelias žinutes{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} ištrynė kelias žinutes kanale {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} ištrynė kelias žinutes." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} ištrynė kategoriją {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} ištrynė kanalą {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} ištrynė kanalą {namedTarget}." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} ištrynė jaustuką {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} ištrynė jaustuką {namedTarget}." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} panaikino kvietimą {code} į {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} panaikino kvietimą {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} ištrynė kvietimą {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} pašalino nuorodų kanalą {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} ištrynė vaidmenį {namedTarget}." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} panaikino vaidmenį {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} ištrynė lipduką {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} ištrynė lipduką {namedTarget}." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} ištrynė tekstinį kanalą {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} panaikino balso kanalą {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} pašalino webhooką {name} iš {channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} panaikino webhooką {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} ištrynė webhooką {namedTarget}." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} atjungė {target} iš {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} atjungė {target} iš balso kanalo." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} atjungė {targetMember} nuo balso pokalbio." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} atsijungė nuo {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} atsijungė nuo balso kanalo." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} suteikė {target} vaidmenį {role}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} išmetė {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} išmetė {targetMember}." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} vėl leido {target} girdėti kitus šioje bendruomenėje." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} atliko pakeitimą, kurio ši programėlės versija negali parodyti." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} perkėlė {target} iš {oldChannel} į {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} perkėlė {target} į {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} perkėlė {target} į kitą balso kanalą." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} perkėlė {targetMember} į {channelNode}." @@ -154,16 +504,68 @@ msgstr "{actor} perkėlė {targetMember} į {channelNode}." msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} perkėlė {targetMember} į kitą balso kanalą." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} persikėlė iš {oldChannel} į {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} perkėlė vaidmenį {role} žemyn narių sąraše." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} perkėlė vaidmenį {role} žemiau vaidmenų sąraše." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} perkėlė vaidmenį {role} aukščiau narių sąraše." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} pakėlė vaidmenį {role} vaidmenų sąraše." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} persikėlė į {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} persikėlė į kitą balso kanalą." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} sustabdė kvietimus." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} atliko audito veiksmą su {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} prisegė žinutę kanale {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} prisegė žinutę." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} prisegė žinutę{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} pašalino neaktyvius narius." @@ -179,19 +581,249 @@ msgstr "{actor} pašalino kanalo leidimus, skirtus {targetEntity}, kanale {chann msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} pašalino kanalo leidimus, skirtus {targetEntity}." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} pašalino slapyvardį {nick} iš {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} pašalino {user} leidimų perrašymą iš {channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} pašalino @everyone leidimų perrašymą iš {channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} pašalino leidimų perrašymą vaidmeniui {role} iš {channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} pašalino {target} vaidmenį {role}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} panaikino {target} laikiną apribojimą." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} pašalino pasirinktinį URL adresą {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} pašalino savo bendruomenės profilio akcento spalvą." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} pašalino savo bendruomenės profilio avatarą." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} pašalino savo bendruomenės profilio reklamjuostę." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} pašalino savo bendruomenės profilio biografiją." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} pašalino savo bendruomenės profilio įvardžius." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} pašalino savo slapyvardį {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} pervadino kategoriją {oldName} į {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} pervadino kanalą {oldName} į {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} pervadino bendruomenę iš {oldName} į {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} pervadino jaustuką {oldEmoji} į {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} pervadino nuorodos kanalą {oldName} į {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} pervadino vaidmenį {oldName} į {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} pervadino lipduką {oldName} į {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} pervadino tekstinį kanalą {oldName} į {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} pervadino balso kanalą {oldName} į {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} pervadino webhooką {oldName} į {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} atstatė vaidmens {role} poziciją narių sąraše." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} atnaujino kvietimus." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} nustatė vaidmens {role} poziciją narių sąraše." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} nustatė nario {target} slapyvardį į {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} nustatė pasirinktinį URL į {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} nustatė savo bendruomenės profilio akcento spalvą į {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} nustatė savo bendruomenės profilio avatarą." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} nustatė savo bendruomenės profilio reklamjuostę." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} nustatė savo bendruomenės profilio biografiją į {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} pakeitė savo bendruomenės profilio įvardžius į {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} nustatė savo slapyvardį į {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} nebeleido {target} girdėti kitų šioje bendruomenėje." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} laikinai apribojo {target} iki {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} perleido bendruomenės nuosavybę {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} vėl įjungė {target} mikrofoną šioje bendruomenėje." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} išjungė {target} mikrofoną šioje bendruomenėje." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} panaikino {target} užblokavimą." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} panaikino {targetMember} užblokavimą." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} atsegė žinutę kanale {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} atsegė žinutę." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} atsegė žinutę{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} pakeitė {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} atnaujino {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} atnaujino lipduką." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} atnaujino webhooką." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} pakeitė jaustuką." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} atnaujino kanalo leidimus, skirtus {targetEntity}, kanale {channelNode}." @@ -204,35 +836,112 @@ msgstr "{actor} atnaujino kanalo leidimus, skirtus {targetEntity}." msgid "{actor} updated roles for {targetMember}." msgstr "{actor} atnaujino {targetMember} vaidmenis." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} pakeitė kategoriją {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} pakeitė kanalą {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} atnaujino kanalą {namedTarget}." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} atnaujino bendruomenės nustatymus." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} pakeitė jaustuką {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} atnaujino jaustuką {namedTarget}." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} atnaujino kvietimą {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} atnaujino kvietimą {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} atnaujino nuorodos kanalą {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} pakeitė {user} leidimų perrašymą kanale {channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} pakeitė @everyone leidimų perrašymą kanale {channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} pakeitė leidimų perrašymą {role} vaidmeniui kanale {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} atnaujino vaidmenį {namedTarget}." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} pakeitė vaidmenį {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} pakeitė {target} vaidmenis." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} pakeitė lipduką {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} atnaujino lipduką {namedTarget}." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} pakeitė tekstinį kanalą {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} atnaujino balso kanalą {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} atnaujino webhooką {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} atnaujino webhooką {namedTarget}." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} atnaujino savo bendruomenės profilį." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# elementas} few {# elementai} other {# elementų}} msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# narys} few {# nariai} other {# narių}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# papildomas leidimas} few {# papildomi leidimai} other {# papildomų leidimų}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# bendra bendruomenė} few {# bendros bendruomenės} other {# bendrų bendruomenių}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {Rodyti # įrenginį} few {Rodyti # įrenginius} oth msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Atsijungti nuo # įrenginio} other {Atsijungti nuo # įrenginių}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {Kvietimas buvo apribotas iki # panaudojimo.} few {Kvietimas buvo apribotas iki # panaudojimų.} other {Kvietimas buvo apribotas iki # panaudojimų.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {Kvietimas buvo panaudotas # kartą.} few {Kvietimas buvo panaudotas # kartus.} other {Kvietimas buvo panaudotas # kartų.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "Bendruomenės {guildName} kanalai" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Veikla" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Veiklos žurnalas" @@ -2713,10 +3437,60 @@ msgstr "Pridėta: {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "Pridėta {length, plural, one {# vietinio failo nuoroda} few {# vietinių failų nuorodos} many {# vietinio failo nuorodos} other {# vietinių failų nuorodų}}." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "Pridėtas pokalbio įterpties fonas." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Pridėta bendruomenės reklamjuostė." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Pridėta bendruomenės piktograma." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "Pridėtas turinio įspėjimas su tekstu {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Pridėtas turinio įspėjimas." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "Pridėtas avataras." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Pridėtas kvietimo fonas." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Pridėti vaidmenys." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Pridėtas nario bendruomenės profilio avataras." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Pridėta nario bendruomenės profilio reklamjuostė." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "Pridėtas vaidmuo {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Lygiavimo valdikliai pasiekiami tik platesniuose ekranuose" #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Viskas <0/>, amžinai. Jokių sąskaitų, jokių atnaujinimų." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Visi veiksmai" @@ -3001,10 +3775,12 @@ msgstr "Visos kalbos" msgid "All members" msgstr "Visi nariai" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "Visas laikotarpis" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Visi naudotojai" @@ -3197,6 +3973,16 @@ msgstr "Leista {0} ir pašalintas leidimas {1}." msgid "Allowed {0}." msgstr "Leista {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "Leista {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Leista visiems nariams paminėti šį vaidmenį." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Leidžiami skambintojai" @@ -3205,15 +3991,35 @@ msgstr "Leidžiami skambintojai" msgid "Allowed everyone to mention this role." msgstr "Visiems leista paminėti šį vaidmenį." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Leista naudoti lanksčius teksto kanalų pavadinimus." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Leidžiami kvietimai" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Leista kitiems klonuoti šios bendruomenės jaustukus." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Leista kitiems klonuoti šios bendruomenės lipdukus." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Leidžiami nukreipimai" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Leidžiama iki {count, plural, one {# ryšio} few {# ryšių} other {# ryšių}} vienam nariui." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Užblokuoti narius" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Užblokuokite bendruomenės narius su galimybe ištrinti jų neseniai išsiųstas žinutes." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Užblokavimo priežastis" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Blokuoti naudotoją" msgid "Blocked" msgstr "Užblokuoti" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Nariui uždrausta siųsti žinutes, reaguoti ir prisijungti prie balso kanalų iki {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Botas" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Botas pridėtas" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Kategorija ištrinta" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Kategorija pilna" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Centras" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Centre" @@ -6298,11 +7116,183 @@ msgstr "Pakeisti naudotojo vardą" msgid "Changed nickname from {0} to {1}." msgstr "Pakeitė slapyvardį iš „{0}“ į „{1}“." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Lėtasis režimas pakeistas iš {oldDuration} į {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "Pakeistas AFK kanalas iš {oldChannel} į {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "Pakeistas AFK laukimo laikas iš {oldDuration} į {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "Garso kokybė pakeista iš {oldKbps} kbps į {newKbps} kbps." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Pakeistas avataras." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Pakeitė bitų spartą į „{0}“." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Pakeista draudimo siųsti žinutes, reaguoti ir prisijungti prie balso kanalų pabaiga: {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Pakeistas pokalbio įterpties fonas." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Pakeista bendruomenės reklamjuostė." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Pakeista bendruomenės piktograma." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "Pakeistas jungčių skaičius vienam nariui iš {oldCount} į {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "Pakeistas turinio įspėjimo tekstas iš {oldText} į {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Pakeista pasirinktinė vaidmens piktograma." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Pakeistas pasirinktinio įspėjimo tekstas iš {oldText} į {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "Pakeistas numatytasis pranešimų nustatymas iš {oldSetting} į {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Pakeistas aprašymas iš {oldText} į {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Pakeistas nepadoraus turinio filtras iš {oldFilter} į {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Pakeistas kvietimo fono lygiavimas iš {oldAlignment} į {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Pakeistas kvietimo fonas." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "Pakeistas nuorodos adresas iš {oldUrl} į {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Pakeistas nario bendruomenės profilio avataras." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Pakeista nario bendruomenės profilio reklamjuostė." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "Pakeista nario bendruomenės profilio biografija į {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "Pakeistas žinučių istorijos slenkstis iš {oldDate} į {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "Pakeistas pavadinimas iš {oldName} į {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "Pakeistas slapyvardis iš {oldNick} į {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Pakeista vaidmens spalva iš {oldColor} į {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Pakeista vaidmens piktograma iš {oldEmoji} į {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "Pakeistas sistemos kanalas iš {oldChannel} į {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Pakeista kanalo tema iš {oldText} į {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "Pakeistas naudotojų limitas iš {oldCount} į {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "Pakeistas pasirinktinis URL iš {oldCode} į {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Pakeistas patvirtinimo lygis iš {oldLevel} į {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "Pakeistas balso regionas iš {oldRegion} į {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "kanalas" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Kanalas arba kategorija" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Kanalo perrašymas pridėtas" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Kanalo perrašymas pašalintas" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Kanalo perrašymas atnaujintas" @@ -7815,7 +8805,7 @@ msgstr "Bendruomenėms, turinčioms daugiau nei 250 narių, priverstinai nustato #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Ištrinti savo žinutes šiame pokalbyje?" msgid "Deleted" msgstr "Ištrinta" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "Ištrinta nario naujausių žinučių istorija už {duration}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Ištrintas tekstas" msgid "Deleted your messages." msgstr "Jūsų žinutės ištrintos." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "ištrinta-kategorija" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "ištrintas-kanalas" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "ištrintas-vaidmuo" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "Neleista {0} ir pašalintas draudimas {1}." msgid "Denied {0}." msgstr "Neleista {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "Uždrausta {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Įterptieji elementai vėl rodomi" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Jaustukų klonavimas įjungtas" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Jaustukas sukurtas" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Jaustukas ištrintas" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Jaustukų vietos užpildytos" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Jaustukas atnaujintas" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Filtruoti pagal paskyros sukūrimo datą" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Filtruoti pagal veiksmą" @@ -14572,18 +15587,22 @@ msgstr "Filtruoti pagal vaidmenis" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Filtruoti pagal naudotoją" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Filtruoti visus" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Filtruoti narius be vaidmenų" @@ -15890,6 +16909,11 @@ msgstr "Suteikta {0} ir atšaukta {1}." msgid "Granted {0}." msgstr "Suteikta {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "Suteikta {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Sveiki, {username}! Tikimės, kad jums patiks." msgid "Hey, {username}, welcome aboard!" msgstr "{username}, sveiki prisijungę!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Paslėpti prisijungimo pranešimai sistemos kanale." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Paslėpta bendruomenės savininko karūna." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Slėpti savo kamerą?" msgid "Hide your own screen share?" msgstr "Slėpti savo ekrano bendrinimą?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Aukštas" @@ -17688,7 +18724,7 @@ msgstr "Kviesti" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "Kvietimo kodas yra {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Kvietimas sukurtas" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Kvietimas ištrintas" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Kvietimas nepasiekiamas" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Kvietimas atnaujintas" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (kairėje)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Lygiuota kairėje" @@ -18745,6 +19783,11 @@ msgstr "Leisti ekrano skaitytuvams pranešti apie naujas žinutes, kai jos gauna msgid "Let the community self-moderate" msgstr "Leisti bendruomenei moderuoti save" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Nariui vėl leista girdėti kitus šioje bendruomenėje." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Leidžia pasirinktiniam CSS atskleisti permatomas lango sritis iš naujo paleidus darbalaukio programą." @@ -18815,6 +19858,16 @@ msgstr "Patinka." msgid "Likes: <0>{countLabel}" msgstr "Patiktukai: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "Paminėti šį vaidmenį leista tik nariams, turintiems leidimą paminėti bet kurį vaidmenį." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Kanalas apribotas iki {count, plural, one {# naudotojo} few {# naudotojų} other {# naudotojų}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Luiziana" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Žemas" @@ -19204,6 +20259,11 @@ msgstr "„macOS“ numatytasis įrenginys" msgid "macOS permissions" msgstr "„macOS“ leidimai" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Nustatyta, kad kanalas paveldi brandaus turinio nustatymą." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Jaustukas pažymėtas kaip animuotas." msgid "Marked emoji as static." msgstr "Jaustukas pažymėtas kaip statinis." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Kanalas pažymėtas kaip skirtas brandžiam turiniui." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Kanalas pažymėtas kaip neskirtas brandžiam turiniui." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "Narys pažymėtas kaip nuolatinis." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Stabdyti atkūrimą" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Vidutinis" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Vidutinis dydis (numatytasis)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Narys" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Nario {displayName} veiksmai" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Narys užblokuotas" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Narys atsijungė" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Narys išmestas" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Šiuo metu bendruomenės narių sąrašai nepasiekiami" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Narys perkeltas" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Narys nerastas" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Nario vaidmenys atnaujinti" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Narys nuo" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Nario užblokavimas panaikintas" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Narys atnaujintas" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Nariai pašalinami, kai yra neprisijungę, nebent jiems priskirtas vaidmuo." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Nariai pašalinti" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "Nariai, neturintys leidimo „{readMessageHistoryPermissionLabel}“, gali matyti žinutes, išsiųstas po šios datos." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Nariai, pasirinkta" @@ -20077,8 +21149,10 @@ msgstr "Paminėjimai, susiję su jumis, čia rodomi {recentMentionsRetentionDays msgid "Mentions of you show up here for {retentionDays} days." msgstr "Paminėjimai, susiję su jumis, čia rodomi {retentionDays} dienas." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Tik paminėjimai" @@ -20104,7 +21178,7 @@ msgstr "žinutė" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Žinutė" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Žinutės derinimas" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Žinutė ištrinta" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Žinučių sąrašas kanale „{channelName}“" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Žinutė prisegta" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Žinučių laikas" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Žinutė atsegta" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Žinutės ir medija" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Žinutės ištrintos" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Moderavimas" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Čia bus rodomi moderavimo veiksmai ir bendruomenės pakeitimai." @@ -20915,16 +21989,51 @@ msgstr "Perkelti į" msgid "Move to…" msgstr "Perkelti į…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Perkelta iš {oldChannel} į {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Perkeltas kanalas iš kategorijos {oldCategory} į kategoriją {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Perkeltas kanalas į kategoriją {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Perkėlė kanalą į kategoriją „{0}“." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "Vaidmuo perkeltas žemyn narių sąraše." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "Vaidmuo perkeltas žemyn vaidmenų sąraše." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Perkėlė vaidmenį į {0} poziciją." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "Vaidmuo perkeltas aukštyn narių sąraše." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "Vaidmuo perkeltas aukštyn vaidmenų sąraše." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Nauja žinutė" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Naujos žinutės" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "Nenurodyta jokių vietinių failų" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Kol kas nėra žurnalų" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "Priežastis nenurodyta" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "Priežastis nenurodyta." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Non-convert" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Non-convert" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "OAuth2 URL kūrimo priemonė" msgid "Objects" msgstr "Objektai" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Objektai" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Išjungta" @@ -23523,6 +24636,21 @@ msgstr "Nepavyko įkelti originalios žinutės" msgid "Original message was deleted" msgstr "Originali žinutė buvo ištrinta" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Iš pradžių užblokavo {user} {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Iš pradžių užblokavo {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Iš pradžių užblokuota {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Pristabdyta dėl sumažinto judesio. Įjunkite, kad animuoti jaustukai b msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "Pristabdyta dėl sumažinto judesio. Įjunkite, kad GIF failai būtų leidžiami." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Sustabdyti kvietimai." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Visam laikui ištrinkite savo paskyrą ir visus susijusius duomenis. Ši msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Visam laikui pašalinkite žinutes, kurias išsiuntėte DM, grupės DM ir bendruomenėse. Darbas vykdomas fone, o kai jis bus baigtas, gausite DM." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Pridėtas leidimų perrašymas" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Pašalintas leidimų perrašymas" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Atnaujintas leidimų perrašymas" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Pasiruošę atnaujinti?" msgid "Real-time" msgstr "Realiuoju laiku" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Priežastis" @@ -26291,26 +27440,166 @@ msgstr "Pašalintas vaidmuo {oldLabel}." msgid "Removed roles." msgstr "Pašalinti vaidmenys." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "Pašalintas AFK kanalas." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Pašalintas avataras." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Kanalas pašalintas iš kategorijos." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Pašalintas kanalas iš kategorijos {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Pašalintas pokalbio įterpties fonas." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "Pašalinta bendruomenės reklamjuostė." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Pašalinta bendruomenės piktograma." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "Pašalintas turinio įspėjimo tekstas." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Pašalintas turinio įspėjimas." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Pašalinta pasirinktinė vaidmens piktograma." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Pašalintas pasirinktinis įspėjimo tekstas." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Pašalintas aprašymas {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Pašalintas kvietimo fonas." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Pašalinta nuoroda." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Pašalinta nario bendruomenės profilio akcento spalva." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Pašalintas nario bendruomenės profilio avataras." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Pašalinta nario bendruomenės profilio reklamjuostė." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Pašalinta nario bendruomenės profilio biografija." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "Pašalinti nario bendruomenės profilio įvardžiai." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Pašalintas žinučių istorijos slenkstis." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "Pašalintas slapyvardis {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "Panaikintas {permissions} perrašymas." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "Pašalintas vaidmuo {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Pašalinta vaidmens spalva." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Pašalinta vaidmens piktograma." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Pašalintas taisyklių kanalas." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "Pašalintas sistemos kanalas." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "Panaikintas laikinas apribojimas." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "Pašalinta tema {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Pašalintas unikodo jaustukas." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Pašalintas naudotojų limitas." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "Pašalintas pasirinktinis URL adresas {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Pašalintas naudotojo {targetUserTag} laikinasis apribojimas" @@ -26381,6 +27670,11 @@ msgstr "Lipdukas pervadintas į {0}." msgid "Renamed the channel to {0}." msgstr "Kanalas pervadintas į {0}." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Bendruomenė pervadinta iš {oldName} į {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Reikalauti iš moderatorių dviejų veiksnių autentifikavimo, kad jie g msgid "Required" msgstr "Būtina" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "Reikalaujama 2FA moderavimo veiksmams." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Atkurti tarpus" msgid "Reset the connection limit." msgstr "Prisijungimų limitas nustatytas iš naujo." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "Atstatyta vaidmens pozicija narių sąraše." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Šį vaidmenį paminėti leista tik leidimą turintiems nariams." msgid "Resubscribe" msgstr "Prenumeruoti iš naujo" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Atnaujinti kvietimai." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Grįžti prie prisijungimo" @@ -27330,6 +28639,11 @@ msgstr "Atšaukti šį kvietimą? Veiksmo anuliuoti nebus galima." msgid "Revoked {0}." msgstr "Atšaukta {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "Atšaukta {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (dešinėje)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Lygiuota dešinėje" @@ -27408,7 +28724,7 @@ msgstr "Skambėjimo tonas" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Vaidmuo" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Vaidmens spalva" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Sukurtas vaidmuo" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Vaidmuo sėkmingai sukurtas" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Vaidmuo ištrintas" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "Reikalingas vaidmens pavadinimas" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Vaidmuo atnaujintas" @@ -28930,11 +30246,21 @@ msgstr "Seansai" msgid "Set {fieldNode} to {0}." msgstr "Nustatyta {fieldNode}: {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Nustatyta pasirinktinė vaidmens piktograma." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Nustatyti pasirinktinę būseną" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Nustatyta vaidmens pozicija narių sąraše." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "Vaidmens spalva nustatyta į <0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "Nustatytas lėtasis režimas: {0} {seconds, plural, one {sekundė} few {sekundės} many {sekundės} other {sekundžių}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Nustatytas lėtasis režimas: {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Nustatyti būseną" msgid "Set the AFK channel to {0}." msgstr "Nustatytas AFK kanalas: {0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "Nustatytas AFK kanalas: {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "Nustatytas AFK skirtasis laikas: {0} sek." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "Nustatyta garso kokybė: {kbps} kbps." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "Nustatytas kanalo tipas: {0}." msgid "Set the connection limit to {0}." msgstr "Nustatytas ryšių limitas: {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "Nustatytas turinio įspėjimo tekstas: {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "Nustatytas pasirinktinis įspėjimo tekstas: {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "Aprašas nustatytas kaip {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "Nustatytas kvietimo fono lygiavimas: {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "Nustatyta nuoroda: {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "Nustatyta nario bendruomenės profilio akcento spalva: {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "Nustatyta nario bendruomenės profilio biografija: {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "Nustatyti nario bendruomenės profilio įvardžiai: {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "Nustatytas žinučių istorijos slenkstis: {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "Nustatytas slapyvardis: {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Nustatykite viešą produkto pavadinimą, temos spalvą ir paveikslėlius, kuriuos rodo klientai." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "Nustatyta vaidmens spalva: {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "Nustatyta vaidmens piktograma: {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "Nustatytas taisyklių kanalas: {0}." msgid "Set the system channel to {0}." msgstr "Nustatytas sistemos kanalas: {0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "Nustatytas sistemos kanalas: {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "Nustatyta tema: {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "Nustatytas naudotojų limitas: {0}." msgid "Set the vanity URL to {0}." msgstr "Nustatytas pasirinktinis URL: {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "Nustatytas pasirinktinis URL adresas: {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "Nustatytas balso regionas: {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "Nustatytas automatinis balso regionas." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Rodyti savo visuotinio profilio reklamjuostę šioje bendruomenėje" msgid "Show your Visionary as a regular subscription instead" msgstr "Rodyti „Visionary“ kaip įprastą prenumeratą" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Nariai, turintys šį vaidmenį, rodomi atskirame narių sąrašo skyriuje." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Nepavyko grąžinti pinigų. Jei tai kartosis, susisiekite su palaikymo komanda." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Nepavyko įkelti veiklos žurnalo." @@ -31105,6 +32531,11 @@ msgstr "Pradėti balso skambutį" msgid "Start with computer" msgstr "Paleisti kartu su kompiuteriu" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "Nuo šiol nariai, turintys šį vaidmenį, bus rodomi atskirai." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "lipdukas" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "Lipduko nepavyko pakankamai suglaudinti" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Lipdukas sukurtas" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Lipdukas ištrintas" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Lipdukų vietos užpildytos" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Lipdukas atnaujintas" @@ -31412,6 +32843,46 @@ msgstr "Nustoti žiūrėti transliaciją" msgid "Stop." msgstr "Sustokite." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Nustota leisti lanksčius teksto kanalų pavadinimus." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Nustota leisti kitiems klonuoti šios bendruomenės jaustukus." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Nustota leisti kitiems klonuoti šios bendruomenės lipdukus." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Nustota atskirai rodyti narius su šiuo vaidmeniu." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Nustota slėpti prisijungimo pranešimus sistemos kanale." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Nustota slėpti bendruomenės savininko karūną." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Nustota reikalauti dviejų veiksnių autentifikavimo (2FA) moderavimo veiksmams." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Sustabdytas nario gebėjimas girdėti kitus šioje bendruomenėje." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Sinchronizuoti su kategorija" msgid "Syntax highlighting" msgstr "Sintaksės paryškinimas" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "Sistema" @@ -32449,6 +33922,16 @@ msgstr "Programa nulūžo. Tikrinama, ar yra naujinimų, kurie galėtų išsprę msgid "The app should now be signed in to your account." msgstr "Dabar turėtumėte būti prisijungę prie savo paskyros programėlėje." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "Užblokavimas jau buvo pasibaigęs {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "Užblokavimas turėjo pasibaigti {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "Botas pridėtas prie <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "Darbalaukio naujinimas atsisiųstas. Norėdami užbaigti diegimą, iš n msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "Atsisiųstas failas išsaugotas jūsų kompiuteryje. Įdiekite jį naudodami įprastą paketų tvarkyklę." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "Jaustuką įkėlė {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "Faile yra patvirtinimo žetonas, kurį gausime iš <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "Failas, kurį bandote įkelti, viršija didžiausią leidžiamą {maxSiz msgid "The following people can't be added to this group DM:" msgstr "Šių žmonių negalima pridėti prie šios grupės DM:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "Kvietimą sukūrė {user} {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "Kvietimą sukūrė {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "Kvietimas sukurtas {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "Kvietimas niekada nebuvo panaudotas." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "Kvietimas turėjo nustoti galioti {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "Kvietimas buvo nustatytas leisti neribotą naudojimą." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "Kvietimas nustatytas taip, kad nustotų galioti po {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "Kvietimas nustatytas suteikti laikiną narystę." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "Kvietimas nustatytas taip, kad niekada nepasibaigtų." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "Kalba, kuria kalba didžioji jūsų bendruomenės dalis. Naudojama Atradimo rezultatams filtruoti." @@ -32518,6 +34051,11 @@ msgstr "Nuoroda gali vis dar veikti. Bandykite dar kartą po kurio laiko." msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "Brandaus turinio patikra atšaukta. Galite uždaryti šį skirtuką ir bandyti dar kartą programėlėje." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "Narys nebėra laikinas." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "Nauja kaina jau suplanuota {effectiveDate}." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "Naujas balso kanalas pakartotinai naudos leidimus, naudotojų limitą ir bitų spartą iš <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "Ankstesnis perrašymas leido {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "Ankstesnis perrašymas draudė {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "Puslapis, kurio ieškote, neegzistuoja arba buvo perkeltas." @@ -32565,6 +34113,11 @@ msgstr "Pateiktas „redirect_uri“ neužregistruotas šiai programai." msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "Pateiktas „redirect_uri“ turi naudoti HTTP arba HTTPS." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "Šis vaidmuo suteikė {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "Lipdukas įkeltas kaip animuotas." msgid "The sticker was uploaded as static." msgstr "Lipdukas įkeltas kaip statinis." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "Lipduką įkėlė {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "Sistema suteikė {target} vaidmenį {role}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "Sistema pašalino vaidmenį {role} iš {target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "Naudotojo vardas <0>{fluxerTag} jau užimtas. Tęsiant jūsų žyma msgid "The verification code is invalid or expired." msgstr "Patvirtinimo kodas neteisingas arba jo galiojimo laikas baigėsi." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "Webhooką sukūrė {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Ši kortelė neatitinka jūsų atsiskaitymo šalies, todėl negali būti naudojama šia lokalizuota valiuta. Naudokite vietinę kortelę arba grįžkite į {productName} ir pasirinkite kitą mokėjimo būdą." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "Šioje kategorijoje jau yra didžiausias leistinas kanalų skaičius: {maxChannelsPerCategory}." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Stebėkite moderatorių veiksmus visoje bendruomenėje." @@ -33953,6 +35526,11 @@ msgstr "Perduoti grupės nuosavybę naudotojui „{userName}“?" msgid "Transfer ownership" msgstr "Perduoti nuosavybę" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Bendruomenės nuosavybė perduota {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Įjungti srautinio perdavimo privatumą" msgid "Turn text smileys into emoji" msgstr "Keisti tekstines šypsenėles jaustukais" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Išjungtas turinys suaugusiems." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Išjungtas lėtasis režimas." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "Išjungtas turinio įspėjimas." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Išjungta atskirta reklamjuostė." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Išjungtas nario mikrofonas šioje bendruomenėje." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Įjungtas turinys suaugusiems." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "Įjungtas turinio įspėjimas." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Įjungta atskirta reklamjuostė." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "Vėl įjungtas nario mikrofonas šioje bendruomenėje." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Išjungus leidimų sritis, programa gali veikti netinkamai." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "ukrainiečių" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Nepavyko įkelti veiklos žurnalo" @@ -34859,6 +36482,7 @@ msgstr "Nežinomas objektas" msgid "unknown user" msgstr "nežinomas naudotojas" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "nežinomas naudotojas" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Naudojama tik šioje bendruomenėje." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Vermontas" msgid "Version" msgstr "Versija" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Labai aukštas" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Internetinė kamera" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhookas" @@ -37681,13 +39308,13 @@ msgstr "Webhookas {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Webhookas sukurtas" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhookas ištrintas" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Webhooko pavadinimas" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhookas atnaujintas" diff --git a/fluxer_app/src/features/i18n/locales/nl/messages.po b/fluxer_app/src/features/i18n/locales/nl/messages.po index cc70c622c..ee73a99b5 100644 --- a/fluxer_app/src/features/i18n/locales/nl/messages.po +++ b/fluxer_app/src/features/i18n/locales/nl/messages.po @@ -56,6 +56,31 @@ msgstr "{a} is aan het typen..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} en {c} zijn aan het typen..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} heeft aangepaste toegangsrechten voor {user} toegevoegd in {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} heeft aangepaste toegangsrechten voor @everyone toegevoegd in {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} heeft aangepaste toegangsrechten voor de rol {role} toegevoegd in {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} heeft een sticker toegevoegd." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} heeft een emoji toegevoegd." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} heeft kanaalrechten toegevoegd voor {targetEntity} in {channelNode}." @@ -64,35 +89,200 @@ msgstr "{actor} heeft kanaalrechten toegevoegd voor {targetEntity} in {channelNo msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} heeft kanaalrechten toegevoegd voor {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} heeft de bot {target} als tijdelijk lid toegevoegd." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} heeft de bot {target} toegevoegd." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} heeft de bot {targetMember} toegevoegd." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} heeft de emoji {emoji} toegevoegd." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} heeft de emoji {namedTarget} toegevoegd." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} heeft de sticker {name} toegevoegd." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} heeft de sticker {namedTarget} toegevoegd." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} heeft {target} voor {duration} verbannen." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} heeft {target} permanent verbannen." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} heeft {targetMember} verbannen." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} heeft het einde van de blokkade van {target} voor het verzenden van berichten, reageren en deelnemen aan spraak gewijzigd naar {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} heeft de bijnaam van {target} gewijzigd van {oldNick} naar {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} heeft de aangepaste toegangsrechten van de categorie {channel} gewijzigd." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} heeft de aangepaste toegangsrechten van het kanaal {channel} gewijzigd." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} heeft de aangepaste toegangsrechten van het linkkanaal {channel} gewijzigd." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} heeft de aangepaste toegangsrechten van het tekstkanaal {channel} gewijzigd." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} heeft de aangepaste toegangsrechten van het spraakkanaal {channel} gewijzigd." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} heeft de aangepaste URL gewijzigd van {oldCode} naar {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} heeft hun communityprofielavatar gewijzigd." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} heeft de banner van hun communityprofiel gewijzigd." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} heeft de bio van hun communityprofiel gewijzigd naar {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} heeft hun bijnaam gewijzigd van {oldNick} naar {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} heeft een webhook aangemaakt." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} heeft de categorie {channel} aangemaakt." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} heeft het kanaal {channel} aangemaakt in {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} heeft het kanaal {channel} aangemaakt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} heeft het kanaal {namedTarget} aangemaakt." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} heeft de uitnodiging {code} voor {channel} aangemaakt." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} heeft de uitnodiging {code} aangemaakt." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} heeft de uitnodiging {namedTarget}{0} aangemaakt." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} heeft het linkkanaal {channel} aangemaakt in {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} heeft het linkkanaal {channel} aangemaakt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} heeft de rol {namedTarget} aangemaakt." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} heeft de rol {role} aangemaakt." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} heeft het tekstkanaal {channel} aangemaakt in {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} heeft het tekstkanaal {channel} aangemaakt." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} heeft het spraakkanaal {channel} aangemaakt in {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} heeft het spraakkanaal {channel} aangemaakt." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} heeft de webhook {name} aangemaakt in {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} heeft de webhook {name} aangemaakt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} heeft de webhook {namedTarget} aangemaakt." @@ -103,49 +293,209 @@ msgstr "{actor} heeft de webhook {namedTarget} aangemaakt." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} heeft {0} {bulkCount, plural, one {bericht} other {berichten}}{1} verwijderd." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} heeft {count, plural, one {# bericht} other {# berichten}} verwijderd in {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} heeft {count, plural, one {# bericht} other {# berichten}} verwijderd." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} heeft een bericht verwijderd in {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} heeft een bericht verwijderd." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} heeft een bericht verwijderd{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} heeft een sticker verwijderd." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} heeft een webhook verwijderd." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} heeft een emoji verwijderd." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} heeft meerdere berichten verwijderd{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} heeft enkele berichten verwijderd in {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} heeft enkele berichten verwijderd." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} heeft de categorie {channel} verwijderd." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} heeft het kanaal {channel} verwijderd." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} heeft het kanaal {namedTarget} verwijderd." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} heeft de emoji {emoji} verwijderd." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} heeft de emoji {namedTarget} verwijderd." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} heeft de uitnodiging {code} voor {channel} verwijderd." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} heeft de uitnodiging {code} verwijderd." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} heeft de uitnodiging {namedTarget}{0} verwijderd." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} heeft het linkkanaal {channel} verwijderd." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} heeft de rol {namedTarget} verwijderd." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} heeft de rol {role} verwijderd." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} heeft de sticker {name} verwijderd." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} heeft de sticker {namedTarget} verwijderd." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} heeft het tekstkanaal {channel} verwijderd." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} heeft het spraakkanaal {channel} verwijderd." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} heeft de webhook {name} uit {channel} verwijderd." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} heeft de webhook {name} verwijderd." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} heeft de webhook {namedTarget} verwijderd." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} heeft de verbinding van {target} met {channel} verbroken." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} heeft de verbinding van {target} met spraakchat verbroken." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} heeft {targetMember} uit het spraakkanaal verwijderd." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} heeft de verbinding met {channel} verbroken." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} heeft de verbinding met spraakchat verbroken." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} heeft {target} de rol {role} gegeven." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} heeft {target} uit de community verwijderd." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} heeft {targetMember} uit de community verwijderd." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} heeft ervoor gezorgd dat {target} anderen in deze community weer hoort." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} heeft een wijziging aangebracht die deze versie van de app niet kan weergeven." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} heeft {target} verplaatst van {oldChannel} naar {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} heeft {target} verplaatst naar {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} heeft {target} naar een ander spraakkanaal verplaatst." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} heeft {targetMember} verplaatst naar {channelNode}." @@ -154,16 +504,68 @@ msgstr "{actor} heeft {targetMember} verplaatst naar {channelNode}." msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} heeft {targetMember} naar een ander spraakkanaal verplaatst." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} heeft zichzelf verplaatst van {oldChannel} naar {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} heeft de rol {role} lager geplaatst in de ledenlijst." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} heeft de rol {role} lager geplaatst in de rollenlijst." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} heeft de rol {role} hoger geplaatst in de ledenlijst." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} heeft de rol {role} hoger geplaatst in de rollenlijst." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} heeft zichzelf naar {channel} verplaatst." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} heeft zichzelf naar een ander spraakkanaal verplaatst." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} heeft uitnodigingen gepauzeerd." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} heeft een auditactie uitgevoerd op {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} heeft een bericht vastgezet in {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} heeft een bericht vastgezet." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} heeft een bericht vastgezet{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} heeft inactieve leden verwijderd." @@ -179,19 +581,249 @@ msgstr "{actor} heeft kanaalrechten voor {targetEntity} verwijderd in {channelNo msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} heeft kanaalrechten voor {targetEntity} verwijderd." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} heeft de bijnaam {nick} van {target} verwijderd." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} heeft de aangepaste toegangsrechten voor {user} uit {channel} verwijderd." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} heeft de aangepaste toegangsrechten voor @everyone uit {channel} verwijderd." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} heeft de aangepaste toegangsrechten voor de rol {role} uit {channel} verwijderd." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} heeft de rol {role} van {target} verwijderd." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} heeft de time-out voor {target} verwijderd." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} heeft de aangepaste URL {code} verwijderd." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} heeft de accentkleur van hun communityprofiel verwijderd." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} heeft hun communityprofielavatar verwijderd." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} heeft hun communityprofielbanner verwijderd." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} heeft de bio van hun communityprofiel verwijderd." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} heeft de voornaamwoorden van hun communityprofiel verwijderd." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} heeft hun bijnaam {nick} verwijderd." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} heeft de categorie {oldName} hernoemd naar {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} heeft het kanaal {oldName} hernoemd naar {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} heeft de community hernoemd van {oldName} naar {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} heeft de emoji {oldEmoji} hernoemd naar {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} heeft het linkkanaal {oldName} hernoemd naar {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} heeft de rol {oldName} hernoemd naar {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} heeft de sticker {oldName} hernoemd naar {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} heeft het tekstkanaal {oldName} hernoemd naar {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} heeft het spraakkanaal {oldName} hernoemd naar {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} heeft de webhook {oldName} hernoemd naar {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} heeft de positie in de ledenlijst voor de rol {role} gereset." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} heeft uitnodigingen hervat." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} heeft een positie in de ledenlijst ingesteld voor de rol {role}." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} heeft de bijnaam van {target} ingesteld op {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} heeft de aangepaste URL ingesteld op {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} heeft de accentkleur van hun communityprofiel ingesteld op {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} heeft hun communityprofielavatar ingesteld." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} heeft de banner van hun communityprofiel ingesteld." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} heeft de bio van hun communityprofiel ingesteld op {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} heeft de voornaamwoorden van hun communityprofiel ingesteld op {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} heeft hun bijnaam ingesteld op {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} heeft ervoor gezorgd dat {target} anderen in deze community niet meer hoort." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} heeft {target} een time-out gegeven tot {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} heeft het community-eigendom overgedragen aan {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} heeft de microfoon van {target} in deze community weer ingeschakeld." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} heeft de microfoon van {target} in deze community uitgeschakeld." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} heeft de verbanning van {target} opgeheven." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} heeft de verbanning van {targetMember} opgeheven." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} heeft een bericht in {channel} losgemaakt." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} heeft een bericht losgemaakt." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} heeft een bericht losgemaakt{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} heeft {target} bijgewerkt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} heeft {targetMember} bijgewerkt." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} heeft een sticker bijgewerkt." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} heeft een webhook bijgewerkt." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} heeft een emoji bijgewerkt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} heeft de kanaalrechten voor {targetEntity} in {channelNode} bijgewerkt." @@ -204,35 +836,112 @@ msgstr "{actor} heeft de kanaalrechten voor {targetEntity} bijgewerkt." msgid "{actor} updated roles for {targetMember}." msgstr "{actor} heeft de rollen van {targetMember} bijgewerkt." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} heeft de categorie {channel} bijgewerkt." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} heeft het kanaal {channel} bijgewerkt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} heeft het kanaal {namedTarget} bijgewerkt." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} heeft de community-instellingen bijgewerkt." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} heeft de emoji {emoji} bijgewerkt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} heeft de emoji {namedTarget} bijgewerkt." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} heeft de uitnodiging {code} bijgewerkt." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} heeft de uitnodiging {namedTarget}{0} bijgewerkt." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} heeft het linkkanaal {channel} bijgewerkt." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} heeft de aangepaste toegangsrechten voor {user} in {channel} bijgewerkt." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} heeft de aangepaste toegangsrechten voor @everyone in {channel} bijgewerkt." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} heeft de aangepaste toegangsrechten voor de rol {role} in {channel} bijgewerkt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} heeft de rol {namedTarget} bijgewerkt." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} heeft de rol {role} bijgewerkt." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} heeft de rollen van {target} bijgewerkt." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} heeft de sticker {name} bijgewerkt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} heeft de sticker {namedTarget} bijgewerkt." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} heeft het tekstkanaal {channel} bijgewerkt." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} heeft het spraakkanaal {channel} bijgewerkt." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} heeft de webhook {name} bijgewerkt." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} heeft de webhook {namedTarget} bijgewerkt." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} heeft hun communityprofiel bijgewerkt." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# item} other {# items}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# lid} other {# leden}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# extra machtiging} other {# extra machtigingen}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# gemeenschappelijke community} other {# gemeenschappelijke communities}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {Toon # apparaat} other {Toon # apparaten}}" msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Meld # apparaat af} other {Meld # apparaten af}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {De uitnodiging was beperkt tot # gebruik.} other {De uitnodiging was beperkt tot # keer gebruik.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {De uitnodiging is # keer gebruikt.} other {De uitnodiging is # keer gebruikt.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "Kanalen van {guildName}" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Activiteit" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Activiteitenlogboek" @@ -2713,10 +3437,60 @@ msgstr "{0} toegevoegd." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "Er {length, plural, one {is # lokale bestandsverwijzing toegevoegd} other {zijn # lokale bestandsverwijzingen toegevoegd}}." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "Achtergrond voor chat-embed toegevoegd." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Banner voor de community toegevoegd." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Communitypictogram toegevoegd." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "Een inhoudswaarschuwing toegevoegd met de tekst {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Een inhoudswaarschuwing toegevoegd." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "Avatar toegevoegd." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Achtergrond van uitnodiging toegevoegd." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Rollen toegevoegd." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Avatar van het communityprofiel van het lid toegevoegd." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Banner van het communityprofiel van het lid toegevoegd." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "De rol {role} toegevoegd." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Uitlijningsopties zijn alleen beschikbaar op bredere schermen" #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Alle <0/>, voor altijd. Geen facturering, geen verlengingen." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Alle acties" @@ -3001,10 +3775,12 @@ msgstr "Alle talen" msgid "All members" msgstr "Alle leden" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "Gehele periode" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Alle gebruikers" @@ -3197,6 +3973,16 @@ msgstr "Heeft {0} toegestaan en toestemming voor {1} verwijderd." msgid "Allowed {0}." msgstr "{0} toegestaan." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "{permissions} toegestaan." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Alle leden toegestaan deze rol te vermelden." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Toegestane bellers" @@ -3205,15 +3991,35 @@ msgstr "Toegestane bellers" msgid "Allowed everyone to mention this role." msgstr "Iedereen kreeg toestemming om deze rol te vermelden." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Flexibele tekstkanaalnamen toegestaan." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Toegestane uitnodigingen" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Anderen toegestaan om de emoji's van deze community te klonen." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Anderen toegestaan de stickers van deze community te klonen." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Toegestane omleidingen" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Tot {count, plural, one {# verbinding} other {# verbindingen}} per lid toegestaan." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Leden verbannen" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Leden uit de community verbannen, met de mogelijkheid om hun recente berichten te verwijderen." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Reden van verbanning" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Gebruiker blokkeren" msgid "Blocked" msgstr "Geblokkeerd" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Het lid geblokkeerd voor het verzenden van berichten, reageren en deelnemen aan spraak tot {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Bot" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Bot toegevoegd" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Categorie verwijderd" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Categorie vol" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Centreren" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Gecentreerd" @@ -6298,11 +7116,183 @@ msgstr "Gebruikersnaam wijzigen" msgid "Changed nickname from {0} to {1}." msgstr "Bijnaam gewijzigd van {0} naar {1}." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Slowmodus gewijzigd van {oldDuration} naar {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "AFK-kanaal gewijzigd van {oldChannel} naar {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "De AFK-time-out gewijzigd van {oldDuration} naar {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "De audiokwaliteit gewijzigd van {oldKbps} kbps naar {newKbps} kbps." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Avatar gewijzigd." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Bitrate gewijzigd naar {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Het einde van de blokkade voor het verzenden van berichten, reageren en deelnemen aan spraak gewijzigd naar {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Chat-embedachtergrond gewijzigd." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "De communitybanner gewijzigd." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Het communitypictogram gewijzigd." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "Het aantal verbindingen per lid gewijzigd van {oldCount} naar {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "De tekst van de inhoudswaarschuwing gewijzigd van {oldText} naar {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Het aangepaste rolpictogram gewijzigd." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "De aangepaste waarschuwingstekst is gewijzigd van {oldText} naar {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "De instelling voor standaardmeldingen gewijzigd van {oldSetting} naar {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Beschrijving gewijzigd van {oldText} naar {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Het filter voor seksueel expliciete inhoud gewijzigd van {oldFilter} naar {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "De uitlijning van de achtergrond van de uitnodiging gewijzigd van {oldAlignment} naar {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "De achtergrond van de uitnodiging is gewijzigd." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "De link gewijzigd van {oldUrl} naar {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Avatar van het communityprofiel van het lid gewijzigd." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Banner van het communityprofiel van het lid gewijzigd." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "De communityprofielbio van het lid gewijzigd naar {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "De drempel voor berichtgeschiedenis gewijzigd van {oldDate} naar {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "De naam gewijzigd van {oldName} naar {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "De bijnaam gewijzigd van {oldNick} naar {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "De rolkleur gewijzigd van {oldColor} naar {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Het rolpictogram gewijzigd van {oldEmoji} naar {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "Systeemkanaal gewijzigd van {oldChannel} naar {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Het onderwerp gewijzigd van {oldText} naar {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "De limiet voor gebruikers is gewijzigd van {oldCount} naar {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "De aangepaste URL gewijzigd van {oldCode} naar {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Verificatieniveau gewijzigd van {oldLevel} naar {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "De spraakregio gewijzigd van {oldRegion} naar {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "kanaal" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Kanaal of categorie" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Aangepaste toegangsrechten voor kanaal toegevoegd" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Aangepaste toegangsrechten voor kanaal verwijderd" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Aangepaste toegangsrechten voor kanaal bijgewerkt" @@ -7815,7 +8805,7 @@ msgstr "Bij communities met meer dan 250 leden wordt de instelling \"Alleen verm #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Je berichten in dit gesprek verwijderen?" msgid "Deleted" msgstr "Verwijderd" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "{duration} van de recente berichtgeschiedenis van het lid verwijderd." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Verwijderde tekst" msgid "Deleted your messages." msgstr "Je berichten zijn verwijderd." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "verwijderde-categorie" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "verwijderd-kanaal" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "verwijderde-rol" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "{0} geweigerd en weigering voor {1} verwijderd." msgid "Denied {0}." msgstr "{0} geweigerd." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "{permissions} geweigerd." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Ingesloten inhoud weer zichtbaar" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Klonen van emoji's ingeschakeld" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Emoji aangemaakt" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Emoji verwijderd" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Alle emojiplaatsen bezet" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Emoji bijgewerkt" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Filteren op aanmaakdatum account" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Filteren op actie" @@ -14572,18 +15587,22 @@ msgstr "Filteren op rollen" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Filteren op gebruiker" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Berichten van iedereen filteren" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Berichten van leden zonder rollen filteren" @@ -15890,6 +16909,11 @@ msgstr "{0} toegekend en {1} ingetrokken." msgid "Granted {0}." msgstr "{0} toegekend." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "{permissions} verleend." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Hoi {username}! Veel plezier hier." msgid "Hey, {username}, welcome aboard!" msgstr "Hoi, {username}, welkom!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Berichten over nieuwe leden verborgen in het systeemkanaal." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "De kroon van de community-eigenaar verborgen." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Eigen camera verbergen?" msgid "Hide your own screen share?" msgstr "Je eigen schermdeling verbergen?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Hoog" @@ -17688,7 +18724,7 @@ msgstr "Uitnodigen" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "Uitnodigingscode is {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Uitnodiging aangemaakt" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Uitnodiging verwijderd" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Uitnodiging niet beschikbaar" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Uitnodiging bijgewerkt" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (links)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Links uitgelijnd" @@ -18745,6 +19783,11 @@ msgstr "Laat schermlezers nieuwe berichten aankondigen zodra ze binnenkomen in h msgid "Let the community self-moderate" msgstr "Laat de community zelf modereren" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Ervoor gezorgd dat het lid anderen in deze community weer hoort." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Laat aangepaste CSS transparante venstergebieden weergeven na het herstarten van de desktopapp." @@ -18815,6 +19858,16 @@ msgstr "Geliket." msgid "Likes: <0>{countLabel}" msgstr "Vind-ik-leuks: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "Vermeldingen van deze rol beperkt tot leden met de machtiging om elke rol te vermelden." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Het kanaal beperkt tot {count, plural, one {# gebruiker} other {# gebruikers}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Louisiana" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Laag" @@ -19204,6 +20259,11 @@ msgstr "Standaard van macOS" msgid "macOS permissions" msgstr "macOS-machtigingen" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Het kanaal de instelling voor inhoud voor volwassenen laten overnemen." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Emoji als geanimeerd gemarkeerd." msgid "Marked emoji as static." msgstr "Emoji als statisch gemarkeerd." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Het kanaal gemarkeerd voor inhoud voor volwassenen." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Het kanaal gemarkeerd als vrij van inhoud voor volwassenen." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "Lid gemarkeerd als permanent." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Afspelen stoppen" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Gemiddeld" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Gemiddelde grootte (standaard)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Lid" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Acties voor {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Lid verbannen" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Verbinding van lid verbroken" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Lid verwijderd" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Ledenlijsten zijn tijdelijk niet beschikbaar in deze community" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Lid verplaatst" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Lid niet gevonden" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Rollen van lid bijgewerkt" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Lid sinds" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Verbanning van lid opgeheven" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Lid bijgewerkt" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Leden worden verwijderd wanneer ze offline zijn, tenzij ze een rol krijgen toegewezen." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Leden opgeschoond" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "Leden zonder de machtiging {readMessageHistoryPermissionLabel} kunnen berichten zien die na deze datum zijn verzonden." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Leden, geselecteerd" @@ -20077,8 +21149,10 @@ msgstr "Vermeldingen van jou verschijnen hier gedurende {recentMentionsRetention msgid "Mentions of you show up here for {retentionDays} days." msgstr "Vermeldingen van jou verschijnen hier gedurende {retentionDays} dagen." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Alleen vermeldingen" @@ -20104,7 +21178,7 @@ msgstr "bericht" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Bericht" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Bericht debuggen" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Bericht verwijderd" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Berichtenlijst voor {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Bericht vastgezet" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Tijdstip van bericht" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Bericht niet meer vastgezet" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Berichten en media" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Berichten verwijderd" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Moderatie" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Moderatieacties en communitywijzigingen verschijnen hier." @@ -20915,16 +21989,51 @@ msgstr "Verplaatsen naar" msgid "Move to…" msgstr "Verplaatsen naar…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Verplaatst van {oldChannel} naar {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Het kanaal verplaatst van de categorie {oldCategory} naar de categorie {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Kanaal verplaatst naar de categorie {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Heeft het kanaal verplaatst naar categorie {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "De rol lager in de ledenlijst geplaatst." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "De rol lager geplaatst in de rollenlijst." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Rol verplaatst naar positie {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "De rol hoger geplaatst in de ledenlijst." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "De rol hoger geplaatst in de rollenlijst." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Nieuw bericht" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Nieuwe berichten" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "Geen lokale bestanden waarnaar wordt verwezen" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Nog geen logboeken" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "Geen reden opgegeven" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "Geen reden opgegeven." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Niet converteren" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Niet converteren" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "OAuth2-URL-bouwer" msgid "Objects" msgstr "Objecten" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Objecten" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Uit" @@ -23523,6 +24636,21 @@ msgstr "Oorspronkelijk bericht kon niet worden geladen" msgid "Original message was deleted" msgstr "Oorspronkelijk bericht is verwijderd" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Oorspronkelijk verbannen door {user} op {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Oorspronkelijk verbannen door {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Oorspronkelijk verbannen op {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Gepauzeerd door verminderde beweging. Schakel in om geanimeerde emoji's msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "Gepauzeerd door verminderde beweging. Schakel in om GIF's af te spelen." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Uitnodigingen gepauzeerd." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Verwijder je account en alle bijbehorende gegevens permanent. Deze actie msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Verwijder permanent de berichten die je hebt verzonden in DM's, groeps-DM's en communities. Dit proces wordt op de achtergrond uitgevoerd en je ontvangt een DM wanneer het is voltooid." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Aangepaste toegangsrechten toegevoegd" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Aangepaste toegangsrechten verwijderd" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Aangepaste toegangsrechten bijgewerkt" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Klaar om te upgraden?" msgid "Real-time" msgstr "Realtime" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Reden" @@ -26291,26 +27440,166 @@ msgstr "Rol {oldLabel} verwijderd." msgid "Removed roles." msgstr "Rollen verwijderd." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "AFK-kanaal verwijderd." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Avatar verwijderd." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Heeft het kanaal uit de categorie verwijderd." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Het kanaal uit de categorie {category} gehaald." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Achtergrond voor chat-embed verwijderd." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "De communitybanner verwijderd." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Het communitypictogram verwijderd." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "De tekst van de inhoudswaarschuwing verwijderd." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "De inhoudswaarschuwing verwijderd." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Het aangepaste rolpictogram is verwijderd." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "De aangepaste waarschuwingstekst verwijderd." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Beschrijving {text} verwijderd." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "De achtergrond van de uitnodiging is verwijderd." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "De link verwijderd." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Accentkleur van het communityprofiel van het lid verwijderd." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Avatar van het communityprofiel van het lid verwijderd." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Banner van het communityprofiel van het lid verwijderd." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "De communityprofielbio van het lid verwijderd." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "De voornaamwoorden van het communityprofiel van het lid verwijderd." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "De drempel voor berichtgeschiedenis verwijderd." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "De bijnaam {nick} verwijderd." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "De aangepaste toegangsrechten voor {permissions} verwijderd." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "Rol {role} verwijderd." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "De rolkleur verwijderd." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Het rolpictogram verwijderd." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Het regelskanaal verwijderd." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "Systeemkanaal verwijderd." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "De time-out verwijderd." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "Het onderwerp {text} verwijderd." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "De Unicode-emoji verwijderd." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "De gebruikerslimiet is verwijderd." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "De aangepaste URL {code} verwijderd." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Time-out voor {targetUserTag} opgeheven" @@ -26381,6 +27670,11 @@ msgstr "Sticker hernoemd naar {0}." msgid "Renamed the channel to {0}." msgstr "Heeft het kanaal hernoemd naar {0}." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "De community hernoemd van {oldName} naar {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Vereis tweefactorauthenticatie voor moderators voordat ze gebruikers kun msgid "Required" msgstr "Vereist" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "2FA vereist voor moderatieacties." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Afstand herstellen" msgid "Reset the connection limit." msgstr "Verbindingslimiet opnieuw ingesteld." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "De positie in de ledenlijst voor de rol gereset." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Vermeldingen van deze rol zijn beperkt tot leden met de vereiste toestem msgid "Resubscribe" msgstr "Opnieuw abonneren" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Uitnodigingen hervat." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Terug naar inloggen" @@ -27330,6 +28639,11 @@ msgstr "Deze uitnodiging intrekken? Kan niet ongedaan worden gemaakt." msgid "Revoked {0}." msgstr "{0} ingetrokken." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "{permissions} ingetrokken." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (rechts)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Rechts uitgelijnd" @@ -27408,7 +28724,7 @@ msgstr "Beltoon" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Rol" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Rolkleur" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Rol aangemaakt" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Rol succesvol aangemaakt" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Rol verwijderd" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "Rolnaam is vereist" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Rol bijgewerkt" @@ -28930,11 +30246,21 @@ msgstr "Sessies" msgid "Set {fieldNode} to {0}." msgstr "{fieldNode} ingesteld op {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Een aangepast rolpictogram ingesteld." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Aangepaste status instellen" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Een positie in de ledenlijst ingesteld voor de rol." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "Rolkleur ingesteld op <0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "Slowmodus ingesteld op {0} {seconds, plural, one {seconde} other {seconden}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Slowmodus ingesteld op {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Status instellen" msgid "Set the AFK channel to {0}." msgstr "AFK-kanaal ingesteld op {0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "Het AFK-kanaal ingesteld op {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "AFK-time-out in seconden ingesteld op {0}." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "De audiokwaliteit ingesteld op {kbps} kbps." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "Heeft het kanaaltype ingesteld op {0}." msgid "Set the connection limit to {0}." msgstr "Verbindingslimiet ingesteld op {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "De tekst van de inhoudswaarschuwing ingesteld op {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "De aangepaste waarschuwingstekst ingesteld op {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "De beschrijving ingesteld op {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "Uitlijning van uitnodigingsachtergrond ingesteld op {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "De link ingesteld op {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "De accentkleur van het communityprofiel van het lid ingesteld op {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "De communityprofielbio van het lid ingesteld op {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "De voornaamwoorden van het communityprofiel van het lid ingesteld op {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "De drempel voor berichtgeschiedenis ingesteld op {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "De bijnaam ingesteld op {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Stel de openbare productnaam, themakleur en afbeeldingen in die de apps weergeven." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "De rolkleur ingesteld op {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "Het rolpictogram ingesteld op {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "Heeft het regelskanaal ingesteld op {0}." msgid "Set the system channel to {0}." msgstr "Systeemkanaal ingesteld op {0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "Het systeemkanaal ingesteld op {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "Het onderwerp ingesteld op {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "Gebruikerslimiet ingesteld op {0}." msgid "Set the vanity URL to {0}." msgstr "Aangepaste URL ingesteld op {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "De aangepaste URL ingesteld op {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "De spraakregio ingesteld op {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "De spraakregio ingesteld op automatisch." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Toon de banner van je algemene profiel in deze community" msgid "Show your Visionary as a regular subscription instead" msgstr "Toon je Visionary als een normaal abonnement" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Leden met deze rol in een eigen sectie in de ledenlijst getoond." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Er is iets misgegaan bij het verwerken van je terugbetaling. Neem contact op met de ondersteuning als dit blijft gebeuren." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Er is iets misgegaan bij het laden van het activiteitenlogboek." @@ -31105,6 +32531,11 @@ msgstr "Start spraakoproep" msgid "Start with computer" msgstr "Starten met computer" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "Leden met deze rol worden nu apart weergegeven." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "sticker" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "Sticker kon niet voldoende worden gecomprimeerd" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Sticker gemaakt" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Sticker verwijderd" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Stickerplaatsen vol" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Sticker bijgewerkt" @@ -31412,6 +32843,46 @@ msgstr "Stoppen met kijken naar stream" msgid "Stop." msgstr "Stoppen." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Flexibele tekstkanaalnamen zijn niet meer toegestaan." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Anderen kunnen de emoji's van deze community niet meer klonen." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Anderen kunnen de stickers van deze community niet meer klonen." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Leden met deze rol worden niet langer apart weergegeven." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Gestopt met het verbergen van berichten over nieuwe leden in het systeemkanaal." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Gestopt met het verbergen van de kroon van de community-eigenaar." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Niet langer 2FA vereist voor moderatieacties." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Ervoor gezorgd dat het lid anderen in deze community niet meer hoort." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Synchroniseren met categorie" msgid "Syntax highlighting" msgstr "Syntaxiskleuring" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "Systeem" @@ -32449,6 +33922,16 @@ msgstr "De app is vastgelopen. We zoeken naar updates die dit probleem mogelijk msgid "The app should now be signed in to your account." msgstr "De app zou nu moeten zijn aangemeld bij je account." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "De verbanning was al verlopen op {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "De verbanning zou verlopen op {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "De bot is toegevoegd aan <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "De desktopupdate is gedownload. Herstart {productName} om de installatie msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "Het gedownloade bestand is opgeslagen op je computer. Installeer het met je normale pakketbeheerder." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "De emoji is geüpload door {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "Het bestand bevat de verificatietoken die we ophalen van <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "Het bestand dat je probeert te uploaden is groter dan de maximale limiet msgid "The following people can't be added to this group DM:" msgstr "De volgende personen kunnen niet aan deze groeps-DM worden toegevoegd:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "De uitnodiging is gemaakt door {user} op {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "De uitnodiging is aangemaakt door {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "De uitnodiging is gemaakt op {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "De uitnodiging is nooit gebruikt." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "De uitnodiging zou verlopen op {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "De uitnodiging is ingesteld om onbeperkt gebruik toe te staan." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "De uitnodiging is ingesteld om te verlopen na {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "De uitnodiging was ingesteld om tijdelijk lidmaatschap te verlenen." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "De uitnodiging is ingesteld om nooit te verlopen." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "De taal die de meeste mensen in je community spreken. Wordt gebruikt om de resultaten in Ontdekken te filteren." @@ -32518,6 +34051,11 @@ msgstr "De link werkt mogelijk nog steeds. Probeer het over een ogenblik opnieuw msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "De controle voor inhoud voor volwassenen is geannuleerd. Je kunt dit tabblad sluiten en het opnieuw proberen vanuit de app." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "Het lid is niet langer tijdelijk." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "De nieuwe prijs is al gepland voor {effectiveDate}." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "Het nieuwe spraakkanaal gebruikt de machtigingen, gebruikerslimiet en bitrate van <0>{channelLabel} opnieuw." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "De aangepaste toegangsrechten stonden {permissions} toe." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "De aangepaste toegangsrechten weigerden {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "De pagina die je zoekt bestaat niet of is verplaatst." @@ -32565,6 +34113,11 @@ msgstr "De opgegeven redirect_uri is niet geregistreerd voor deze app." msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "De opgegeven redirect_uri moet HTTP of HTTPS gebruiken." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "De rol verleende {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "De sticker is geüpload als animatie." msgid "The sticker was uploaded as static." msgstr "De sticker is geüpload als statisch." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "De sticker is geüpload door {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "Het systeem heeft {target} de rol {role} gegeven." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "Het systeem heeft de rol {role} van {target} verwijderd." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "De gebruikersnaam <0>{fluxerTag} is al in gebruik. Als je doorgaat, msgid "The verification code is invalid or expired." msgstr "De verificatiecode is ongeldig of verlopen." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "De webhook is aangemaakt door {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Deze kaart is niet uitgegeven in je factureringsland en kan daarom niet voor deze lokale valuta worden gebruikt. Gebruik een lokale kaart, of ga terug naar {productName} en kies een andere betaalmethode." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "Deze categorie bevat al het maximum aantal van {maxChannelsPerCategory} kanalen." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Houd moderatoracties bij in de hele community." @@ -33953,6 +35526,11 @@ msgstr "Groepseigendom overdragen aan {userName}?" msgid "Transfer ownership" msgstr "Eigendom overdragen" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Community-eigendom overgedragen aan {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Streamingprivacy inschakelen" msgid "Turn text smileys into emoji" msgstr "Zet tekstsmileys om in emoji" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Inhoud voor volwassenen uitgeschakeld." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Slowmodus uitgeschakeld." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "De inhoudswaarschuwing uitgeschakeld." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "De losgekoppelde banner uitgeschakeld." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Microfoon van het lid uitgeschakeld in deze community." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Inhoud voor volwassenen ingeschakeld." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "De inhoudswaarschuwing ingeschakeld." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "De losgekoppelde banner ingeschakeld." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "De microfoon van het lid in deze community weer ingeschakeld." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Als je machtigingsbereiken uitschakelt, werkt de app mogelijk niet correct." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "Oekraïens" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Kan activiteitenlogboeken niet laden" @@ -34859,6 +36482,7 @@ msgstr "Onbekend doel" msgid "unknown user" msgstr "onbekende gebruiker" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "onbekende gebruiker" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Alleen in deze community gebruikt." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Vermont" msgid "Version" msgstr "Versie" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Zeer hoog" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Webcam" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Webhook aangemaakt" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhook verwijderd" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Naam webhook" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhook bijgewerkt" diff --git a/fluxer_app/src/features/i18n/locales/no/messages.po b/fluxer_app/src/features/i18n/locales/no/messages.po index 506c70f1e..c3bd99bc2 100644 --- a/fluxer_app/src/features/i18n/locales/no/messages.po +++ b/fluxer_app/src/features/i18n/locales/no/messages.po @@ -56,6 +56,31 @@ msgstr "{a} skriver …" msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} og {c} skriver …" +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} la til en tillatelsesoverstyring for {user} i {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} la til en tillatelsesoverstyring for @everyone i {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} la til en tillatelsesoverstyring for rollen {role} i {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} la til et klistremerke." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} la til en emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} la til kanaltillatelser for {targetEntity} i {channelNode}." @@ -64,35 +89,200 @@ msgstr "{actor} la til kanaltillatelser for {targetEntity} i {channelNode}." msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} la til kanaltillatelser for {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} la til boten {target} som et midlertidig medlem." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} la til boten {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} la til boten {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} la til emojien {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} la til emojien {namedTarget}." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} la til klistremerket {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} la til klistremerket {namedTarget}." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} utestengte {target} i {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} utestengte {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} utestengte {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} endret blokkeringen av meldinger, reaksjoner og taledeltakelse for {target} til å utløpe {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} endret kallenavnet til {target} fra {oldNick} til {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} endret tillatelsesoverstyringene for kategorien {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} endret tillatelsesoverstyringene for kanalen {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} endret tillatelsesoverstyringene for lenkekanalen {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} endret tillatelsesoverstyringene for tekstkanalen {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} endret tillatelsesoverstyringene for talekanalen {channel}." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} endret egendefinert URL fra {oldCode} til {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} endret profilbildet på fellesskapsprofilen sin." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} endret banneret for fellesskapsprofilen sin." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} endret bioen på fellesskapsprofilen sin til {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} endret kallenavnet sitt fra {oldNick} til {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} opprettet en webhook." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} opprettet kategorien {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} opprettet kanalen {channel} i {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} opprettet kanalen {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} opprettet kanalen {namedTarget}." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} opprettet invitasjonen {code} for {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} opprettet invitasjonen {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} opprettet invitasjonen {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} opprettet lenkekanalen {channel} i {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} opprettet lenkekanalen {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} opprettet rollen {namedTarget}." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} opprettet rollen {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} opprettet tekstkanalen {channel} i {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} opprettet tekstkanalen {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} opprettet talekanalen {channel} i {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} opprettet talekanalen {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} opprettet webhooken {name} i {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} opprettet webhooken {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} opprettet webhooken {namedTarget}." @@ -103,49 +293,209 @@ msgstr "{actor} opprettet webhooken {namedTarget}." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} slettet {0} {bulkCount, plural, one {melding} other {meldinger}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} slettet {count, plural, one {# melding} other {# meldinger}} i {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} slettet {count, plural, one {# melding} other {# meldinger}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} slettet en melding i {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} slettet en melding." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} slettet en melding{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} slettet et klistremerke." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} slettet en webhook." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} slettet en emoji." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} slettet flere meldinger{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} slettet noen meldinger i {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} slettet noen meldinger." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} slettet kategorien {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} slettet kanalen {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} slettet kanalen {namedTarget}." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} slettet emojien {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} slettet emojien {namedTarget}." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} slettet invitasjonen {code} for {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} slettet invitasjonen {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} slettet invitasjonen {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} slettet lenkekanalen {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} slettet rollen {namedTarget}." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} slettet rollen {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} slettet klistremerket {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} slettet klistremerket {namedTarget}." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} slettet tekstkanalen {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} slettet talekanalen {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} slettet webhooken {name} fra {channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} slettet webhooken {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} slettet webhooken {namedTarget}." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} koblet {target} fra {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} koblet {target} fra tale." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} koblet {targetMember} fra tale." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} koblet fra {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} koblet fra tale." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} ga {target} rollen {role}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} fjernet {target} fra fellesskapet." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} fjernet {targetMember} fra fellesskapet." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} lot {target} høre andre i dette fellesskapet igjen." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} gjorde en endring som denne versjonen av appen ikke kan vise." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} flyttet {target} fra {oldChannel} til {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} flyttet {target} til {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} flyttet {target} til en annen talekanal." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} flyttet {targetMember} til {channelNode}." @@ -154,16 +504,68 @@ msgstr "{actor} flyttet {targetMember} til {channelNode}." msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} flyttet {targetMember} til en annen talekanal." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} flyttet fra {oldChannel} til {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} flyttet rollen {role} nedover på medlemslisten." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} flyttet rollen {role} ned i rolletabellen." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} flyttet rollen {role} opp i medlemslisten." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} flyttet rollen {role} opp i rolletabellen." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} flyttet til {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} flyttet til en annen talekanal." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} satte invitasjoner på pause." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} utførte en loggført handling på {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} festet en melding i {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} festet en melding." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} festet en melding{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} fjernet inaktive medlemmer." @@ -179,19 +581,249 @@ msgstr "{actor} fjernet kanaltillatelser for {targetEntity} i {channelNode}." msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} fjernet kanaltillatelser for {targetEntity}." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} fjernet kallenavnet {nick} fra {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} fjernet tillatelsesoverstyringen for {user} fra {channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} fjernet tillatelsesoverstyringen for @everyone fra {channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} fjernet tillatelsesoverstyringen for rollen {role} fra {channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} fjernet rollen {role} fra {target}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} fjernet timeouten for {target}." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} fjernet egendefinert URL {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} fjernet aksentfargen fra fellesskapsprofilen sin." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} fjernet profilbildet fra fellesskapsprofilen sin." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} fjernet banneret fra fellesskapsprofilen sin." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} fjernet bioen fra fellesskapsprofilen sin." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} fjernet pronomenene fra fellesskapsprofilen sin." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} fjernet kallenavnet sitt {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} endret navnet på kategorien {oldName} til {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} endret navnet på kanalen {oldName} til {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} endret navnet på fellesskapet fra {oldName} til {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} endret navnet på emojien {oldEmoji} til {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} endret navnet på lenkekanalen {oldName} til {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} endret navnet på rollen {oldName} til {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} endret navnet på klistremerket {oldName} til {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} endret navnet på tekstkanalen {oldName} til {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} endret navnet på talekanalen {oldName} til {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} endret navnet på webhooken {oldName} til {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} tilbakestilte medlemslisteposisjonen for rollen {role}." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} gjenopptok invitasjoner." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} satte en medlemslisteposisjon for rollen {role}." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} endret kallenavnet til {target} til {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} endret egendefinert URL til {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} satte aksentfargen på fellesskapsprofilen sin til {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} la til et profilbilde på fellesskapsprofilen sin." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} la til et banner på fellesskapsprofilen sin." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} satte bioen på fellesskapsprofilen sin til {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} satte pronomenene på fellesskapsprofilen sin til {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} endret kallenavnet sitt til {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} stoppet {target} fra å høre andre i dette fellesskapet." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} satte {target} i timeout til {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} overførte eierskapet av fellesskapet til {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} slo på mikrofonen til {target} igjen i dette fellesskapet." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} slo av mikrofonen til {target} i dette fellesskapet." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} fjernet utestengelsen av {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} opphevet utestengelsen av {targetMember}." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} fjernet festingen av en melding i {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} fjernet en melding fra festede meldinger." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} løsnet en melding{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} oppdaterte {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} oppdaterte {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} oppdaterte et klistremerke." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} oppdaterte en webhook." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} oppdaterte en emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} oppdaterte kanaltillatelser for {targetEntity} i {channelNode}." @@ -204,35 +836,112 @@ msgstr "{actor} oppdaterte kanaltillatelser for {targetEntity}." msgid "{actor} updated roles for {targetMember}." msgstr "{actor} oppdaterte roller for {targetMember}." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} oppdaterte kategorien {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} oppdaterte kanalen {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} oppdaterte kanalen {namedTarget}." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} oppdaterte fellesskapsinnstillingene." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} oppdaterte emojien {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} oppdaterte emojien {namedTarget}." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} oppdaterte invitasjonen {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} oppdaterte invitasjonen {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} oppdaterte lenkekanalen {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} endret tillatelsesoverstyringen for {user} i {channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} endret tillatelsesoverstyringen for @everyone i {channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} endret tillatelsesoverstyringen for rollen {role} i {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} oppdaterte rollen {namedTarget}." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} oppdaterte rollen {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} oppdaterte rollene til {target}." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} oppdaterte klistremerket {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} oppdaterte klistremerket {namedTarget}." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} oppdaterte tekstkanalen {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} oppdaterte talekanalen {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} oppdaterte webhooken {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} oppdaterte webhooken {namedTarget}." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} oppdaterte fellesskapsprofilen sin." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# element} other {# elementer}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# medlem} other {# medlemmer}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# tillatelse til} other {# tillatelser til}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# felles fellesskap} other {# felles fellesskap}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {Vis # enhet} other {Vis # enheter}}" msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Logg ut # enhet} other {Logg ut # enheter}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {Invitasjonen var begrenset til # gangs bruk.} other {Invitasjonen var begrenset til # gangers bruk.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {Invitasjonen ble brukt # gang.} other {Invitasjonen ble brukt # ganger.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "Kanaler i {guildName}" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Aktivitet" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Aktivitetslogg" @@ -2713,10 +3437,60 @@ msgstr "La til {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "La til {length, plural, one {# lokal filreferanse} other {# lokale filreferanser}}." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "La til en bakgrunn for chat-embed." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "La til et fellesskapsbanner." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "La til et fellesskapsikon." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "La til en innholdsadvarsel med teksten {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "La til en innholdsadvarsel." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "La til et profilbilde." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "La til en invitasjonsbakgrunn." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "La til roller." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "La til profilbildet på medlemmets fellesskapsprofil." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "La til banneret på medlemmets fellesskapsprofil." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "La til rollen {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Kontroller for bildeplassering er bare tilgjengelige på bredere skjerme #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Alt <0/>, for alltid. Ingen fakturering, ingen fornyelser." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Alle handlinger" @@ -3001,10 +3775,12 @@ msgstr "Alle språk" msgid "All members" msgstr "Alle medlemmer" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "Hele perioden" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Alle brukere" @@ -3197,6 +3973,16 @@ msgstr "Tillot {0} og fjernet tillatelse for {1}." msgid "Allowed {0}." msgstr "Tillot {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "Tillot {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Tillot alle medlemmer å omtale denne rollen." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Hvem som kan ringe" @@ -3205,15 +3991,35 @@ msgstr "Hvem som kan ringe" msgid "Allowed everyone to mention this role." msgstr "Tillot alle å omtale denne rollen." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Tillot fleksible tekstkanalnavn." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Tillatte invitasjoner" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Tillot andre å klone dette fellesskapets emojier." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Tillot andre å klone dette fellesskapets klistremerker." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Tillatte omdirigeringer" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Tillot opptil {count, plural, one {# tilkobling} other {# tilkoblinger}} per medlem." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Utesteng medlemmer" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Utesteng medlemmer fra fellesskapet, med mulighet til å slette de nylige meldingene deres." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Årsak til utestengelse" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Blokker bruker" msgid "Blocked" msgstr "Blokkert" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Blokkerte medlemmet fra å sende meldinger, reagere og bli med i talekanaler frem til {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Bot" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Bot lagt til" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Kategori slettet" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Kategorien er full" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Midtstill" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Midtstilt" @@ -6298,11 +7116,183 @@ msgstr "Endre brukernavnet ditt" msgid "Changed nickname from {0} to {1}." msgstr "Endret kallenavn fra {0} til {1}." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Endret sakte modus fra {oldDuration} til {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "Endret AFK-kanalen fra {oldChannel} til {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "Endret tidsavbruddet for AFK fra {oldDuration} til {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "Endret lydkvaliteten fra {oldKbps} kbps til {newKbps} kbps." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Endret profilbildet." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Endret bithastigheten til {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Endret blokkeringen av meldinger, reaksjoner og taledeltakelse til å utløpe {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Endret bakgrunnen for chat-embed." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Endret banneret for fellesskapet." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Endret fellesskapsikonet." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "Endret tilkoblinger per medlem fra {oldCount} til {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "Endret innholdsadvarselteksten fra {oldText} til {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Endret egendefinert rolleikon." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Endret egendefinert advarselstekst fra {oldText} til {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "Endret standard varslingsinnstilling fra {oldSetting} til {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Endret beskrivelsen fra {oldText} til {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Endret innstillingen for eksplisitt innhold fra {oldFilter} til {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Endret justeringen av invitasjonsbakgrunnen fra {oldAlignment} til {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Endret bakgrunnen for invitasjonen." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "Endret lenken fra {oldUrl} til {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Endret profilbildet på medlemmets fellesskapsprofil." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Endret medlemmets banner for fellesskapsprofilen." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "Endret bioen på medlemmets fellesskapsprofil til {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "Endret grensen for meldingshistorikk fra {oldDate} til {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "Endret navnet fra {oldName} til {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "Endret kallenavnet fra {oldNick} til {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Endret rollens farge fra {oldColor} til {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Endret rolleikonet fra {oldEmoji} til {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "Endret systemkanalen fra {oldChannel} til {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Endret emnet fra {oldText} til {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "Endret brukergrensen fra {oldCount} til {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "Endret egendefinert URL fra {oldCode} til {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Endret verifiseringsnivået fra {oldLevel} til {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "Endret taleregion fra {oldRegion} til {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "kanal" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Kanal eller kategori" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Egendefinerte kanaltillatelser lagt til" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Egendefinerte kanaltillatelser fjernet" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Egendefinerte kanaltillatelser oppdatert" @@ -7815,7 +8805,7 @@ msgstr "Fellesskap med over 250 personer må bruke innstillingen «Kun omtaler» #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Slette meldingene dine i denne samtalen?" msgid "Deleted" msgstr "Slettet" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "Slettet {duration} av medlemmets nylige meldingshistorikk." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Slettet tekst" msgid "Deleted your messages." msgstr "Meldingene dine er slettet." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "slettet-kategori" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "slettet-kanal" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "slettet-rolle" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "Nektet {0} og fjernet nektelsen for {1}." msgid "Denied {0}." msgstr "Nektet {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "Nektet {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Innebygd innhold vises" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Emojikloning aktivert" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Emoji opprettet" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Emoji slettet" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Alle emojiplassene er brukt" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Emoji oppdatert" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Filtrer etter dato for kontoopprettelse" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Filtrer etter handling" @@ -14572,18 +15587,22 @@ msgstr "Filtrer etter roller" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Filtrer etter bruker" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Filtrer alle" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Filtrer medlemmer uten roller" @@ -15890,6 +16909,11 @@ msgstr "Tildelte {0} og tilbakekalte {1}." msgid "Granted {0}." msgstr "Tildelte {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "Ga {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Hei, {username}! Håper du trives." msgid "Hey, {username}, welcome aboard!" msgstr "Hei, {username}! Velkommen skal du være!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Skjulte meldinger om nye medlemmer i systemkanalen." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Skjulte kronen for fellesskapseier." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Skjule ditt eget kamera?" msgid "Hide your own screen share?" msgstr "Skjule din egen skjermdeling?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Høy" @@ -17688,7 +18724,7 @@ msgstr "Inviter" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "Invitasjonskoden er {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Invitasjon opprettet" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Invitasjon slettet" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Invitasjon utilgjengelig" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Invitasjon oppdatert" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (venstre)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Venstrejustert" @@ -18745,6 +19783,11 @@ msgstr "La skjermlesere kunngjøre nye meldinger når de kommer inn i den åpne msgid "Let the community self-moderate" msgstr "La fellesskapet moderere seg selv" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Lot medlemmet høre andre i dette fellesskapet igjen." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Lar egendefinert CSS vise gjennomsiktige vindusområder etter at du har startet skrivebordsappen på nytt." @@ -18815,6 +19858,16 @@ msgstr "Likt." msgid "Likes: <0>{countLabel}" msgstr "Likerklikk: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "Begrenset omtale av denne rollen til medlemmer med tillatelse til å omtale alle roller." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Begrenset kanalen til {count, plural, one {# bruker} other {# brukere}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Louisiana" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Lav" @@ -19204,6 +20259,11 @@ msgstr "macOS – standard" msgid "macOS permissions" msgstr "macOS-tillatelser" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Lot kanalen arve innstillingen for voksent innhold." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Merket emojien som animert." msgid "Marked emoji as static." msgstr "Merket emojien som statisk." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Merket kanalen for voksent innhold." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Merket kanalen som fri for voksent innhold." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "Markerte medlemmet som permanent." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Stopp avspilling" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Middels" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Middels størrelse (standard)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Medlem" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Medlemshandlinger for {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Medlem utestengt" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Medlem koblet fra" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Medlem fjernet fra fellesskapet" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Medlemslister er midlertidig utilgjengelige i dette fellesskapet" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Medlem flyttet" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Medlem ikke funnet" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Medlemsroller oppdatert" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Medlem siden" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Utestengelse av medlem opphevet" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Medlem oppdatert" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Medlemmer fjernes når de er frakoblet, med mindre de har fått en rolle." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Medlemmer fjernet" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "Medlemmer uten tillatelsen {readMessageHistoryPermissionLabel} kan se meldinger sendt etter denne datoen." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Valgte medlemmer" @@ -20077,8 +21149,10 @@ msgstr "Omtaler av deg vises her i {recentMentionsRetentionDays} dager." msgid "Mentions of you show up here for {retentionDays} days." msgstr "Omtaler av deg vises her i {retentionDays} dager." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Kun omtaler" @@ -20104,7 +21178,7 @@ msgstr "melding" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Melding" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Meldingsfeilsøking" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Melding slettet" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Meldingsliste for {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Melding festet" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Tidspunkt for melding" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Melding løsnet" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Meldinger og medier" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Meldinger slettet" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Moderering" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Modereringshandlinger og endringer i fellesskapet vises her." @@ -20915,16 +21989,51 @@ msgstr "Flytt til" msgid "Move to…" msgstr "Flytt til …" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Flyttet fra {oldChannel} til {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Flyttet kanalen fra kategorien {oldCategory} til kategorien {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Flyttet kanalen til kategorien {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Flyttet kanalen til kategorien {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "Flyttet rollen ned i medlemslisten." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "Flyttet rollen ned i rolletabellen." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Flyttet rollen til posisjon {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "Flyttet rollen opp i medlemslisten." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "Flyttet rollen opp i rolletabellen." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Ny melding" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Nye meldinger" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "Ingen referanser til lokale filer" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Ingen logger ennå" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "Ingen grunn oppgitt" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "Ingen grunn ble oppgitt." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Ingen konvertering" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Ingen konvertering" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "URL-bygger for OAuth2" msgid "Objects" msgstr "Objekter" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Objekter" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Av" @@ -23523,6 +24636,21 @@ msgstr "Klarte ikke å laste inn originalmeldingen" msgid "Original message was deleted" msgstr "Opprinnelig melding ble slettet" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Opprinnelig utestengt av {user} den {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Opprinnelig utestengt av {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Opprinnelig utestengt den {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Satt på pause på grunn av redusert bevegelse. Slå på for å fortsett msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "Satt på pause på grunn av redusert bevegelse. Slå på for å fortsette avspillingen av GIF-er." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Invitasjoner satt på pause." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Slett kontoen din og alle tilknyttede data permanent. Denne handlingen k msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Fjern permanent meldinger du har sendt i direktemeldingssamtaler, gruppechatter og fellesskap. Jobben kjører i bakgrunnen, og du får en direktemelding når den er ferdig." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Tillatelsesoverstyring lagt til" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Tillatelsesoverstyring fjernet" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Tillatelsesoverstyring oppdatert" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Klar for å oppgradere?" msgid "Real-time" msgstr "Sanntid" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Årsak" @@ -26291,26 +27440,166 @@ msgstr "Fjernet rolle {oldLabel}." msgid "Removed roles." msgstr "Fjernet roller." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "Fjernet AFK-kanalen." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Fjernet profilbildet." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Fjernet kanalen fra kategorien sin." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Fjernet kanalen fra kategorien {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Fjernet bakgrunnen for chat-embed." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "Fjernet banneret for fellesskapet." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Fjernet fellesskapsikonet." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "Fjernet teksten for innholdsadvarsel." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Fjernet innholdsadvarselen." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Fjernet egendefinert rolleikon." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Fjernet egendefinert advarselstekst." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Fjernet beskrivelsen {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Fjernet bakgrunnen for invitasjonen." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Fjernet lenken." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Fjernet aksentfargen fra medlemmets fellesskapsprofil." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Fjernet profilbildet for fellesskapsprofilen til medlemmet." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Fjernet banneret fra medlemmets fellesskapsprofil." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Fjernet medlemmets bio for fellesskapsprofilen." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "Fjernet medlemmets pronomen fra fellesskapsprofilen." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Fjernet grensen for meldingshistorikk." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "Fjernet kallenavnet {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "Fjernet overstyringen for {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "Fjernet rollen {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Fjernet rollefargen." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Fjernet rolleikonet." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Fjernet regelkanalen." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "Fjernet systemkanalen." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "Fjernet timeouten." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "Fjernet emnet {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Fjernet Unicode-emojien." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Fjernet brukergrensen." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "Fjernet egendefinert URL {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Fjernet timeout for {targetUserTag}" @@ -26381,6 +27670,11 @@ msgstr "Endret navn på klistremerke til {0}." msgid "Renamed the channel to {0}." msgstr "Endret navn på kanalen til {0}." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Endret navnet på fellesskapet fra {oldName} til {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Krev tofaktorautentisering for moderatorer før de kan utestenge eller f msgid "Required" msgstr "Påkrevd" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "Krever 2FA for modereringshandlinger." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Tilbakestill avstand" msgid "Reset the connection limit." msgstr "Nullstilte tilkoblingsgrensen." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "Tilbakestilte medlemslisteposisjonen for rollen." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Begrenset omtale av denne rollen til medlemmer med nødvendig tillatelse msgid "Resubscribe" msgstr "Abonner på nytt" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Gjenopptok invitasjoner." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Tilbake til pålogging" @@ -27330,6 +28639,11 @@ msgstr "Trekke tilbake denne invitasjonen? Kan ikke angres." msgid "Revoked {0}." msgstr "Tilbakekalte {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "Fjernet {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (høyre)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Høyrejustert" @@ -27408,7 +28724,7 @@ msgstr "Ringetone" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Rolle" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Rollefarge" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Rolle opprettet" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Rolle opprettet" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Rolle slettet" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "Rollenavn er påkrevd" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Rolle oppdatert" @@ -28930,11 +30246,21 @@ msgstr "Økter" msgid "Set {fieldNode} to {0}." msgstr "Satte {fieldNode} til {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Satte et egendefinert rolleikon." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Angi en egendefinert status" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Satte en medlemslisteposisjon for rollen." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "Rollefargen er satt til <0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "Satte sakte modus til {0} {seconds, plural, one {sekund} other {sekunder}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Satte sakte modus til {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Angi status" msgid "Set the AFK channel to {0}." msgstr "Satte AFK-kanalen til {0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "Satte AFK-kanalen til {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "Satte AFK-tidsavbruddet til {0} sekunder." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "Endret lydkvaliteten til {kbps} kbps." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "Satte kanaltypen til {0}." msgid "Set the connection limit to {0}." msgstr "Satte tilkoblingsgrensen til {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "Satte teksten for innholdsadvarselen til {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "Satte egendefinert advarselstekst til {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "Satte beskrivelsen til {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "Satte justeringen av invitasjonsbakgrunnen til {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "Satte lenken til {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "Satte aksentfargen på medlemmets fellesskapsprofil til {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "Satte bioen på medlemmets fellesskapsprofil til {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "Satte pronomenene på medlemmets fellesskapsprofil til {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "Satte grensen for meldingshistorikk til {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "Endret kallenavnet til {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Angi det offentlige produktnavnet, temafargen og bildefilene som klientene viser." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "Endret rollens farge til {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "Satte rolleikonet til {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "Satte regelkanalen til {0}." msgid "Set the system channel to {0}." msgstr "Satte systemkanalen til {0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "Satte systemkanalen til {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "Endret emnet til {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "Satte brukergrensen til {0}." msgid "Set the vanity URL to {0}." msgstr "Satte den egendefinerte URL-en til {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "Satte egendefinert URL til {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "Satte taleregionen til {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "Satte taleregionen til automatisk." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Vis banneret for den globale profilen din i dette fellesskapet" msgid "Show your Visionary as a regular subscription instead" msgstr "Vis Visionary som et vanlig abonnement i stedet" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Viste medlemmer med denne rollen i en egen seksjon i medlemslisten." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Det oppsto en feil under refusjonen. Kontakt kundestøtte hvis dette fortsetter å skje." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Noe gikk galt under lasting av aktivitetsloggen." @@ -31105,6 +32531,11 @@ msgstr "Start taleanrop" msgid "Start with computer" msgstr "Start med datamaskinen" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "Begynte å vise medlemmer med denne rollen separat." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "klistremerke" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "Klistremerket kunne ikke komprimeres nok" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Klistremerke opprettet" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Klistremerke slettet" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Ingen ledige klistremerkeplasser" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Klistremerke oppdatert" @@ -31412,6 +32843,46 @@ msgstr "Slutt å se på strømmen" msgid "Stop." msgstr "Stopp." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Sluttet å tillate fleksible tekstkanalnavn." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Sluttet å la andre klone dette fellesskapets emojier." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Sluttet å la andre klone dette fellesskapets klistremerker." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Sluttet å vise medlemmer med denne rollen separat." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Sluttet å skjule meldinger om nye medlemmer i systemkanalen." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Sluttet å skjule eierkronen for fellesskapet." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Sluttet å kreve 2FA for modereringshandlinger." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Stoppet medlemmet fra å høre andre i dette fellesskapet." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Synkroniser med kategori" msgid "Syntax highlighting" msgstr "Syntaksutheving" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "System" @@ -32449,6 +33922,16 @@ msgstr "Appen har krasjet. Ser etter oppdateringer som kan løse problemet …" msgid "The app should now be signed in to your account." msgstr "Du skal nå være logget på kontoen din i appen." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "Utestengelsen hadde allerede utløpt {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "Utestengelsen skulle utløpe {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "Boten er lagt til i <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "Oppdateringen av skrivebordsappen er lastet ned. Start {productName} på msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "Den nedlastede filen er lagret på datamaskinen din. Installer den med din vanlige pakkebehandler." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "Emojien ble lastet opp av {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "Filen inneholder bekreftelsestokenet vi henter fra <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "Filen du prøver å laste opp, overskrider den maksimale størrelsesgren msgid "The following people can't be added to this group DM:" msgstr "Disse personene kan ikke legges til i denne gruppechatten:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "Invitasjonen ble opprettet av {user} den {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "Invitasjonen ble opprettet av {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "Invitasjonen ble opprettet {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "Invitasjonen ble aldri brukt." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "Invitasjonen skulle utløpe {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "Invitasjonen ble satt til å tillate ubegrenset bruk." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "Invitasjonen ble satt til å utløpe etter {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "Invitasjonen ble satt til å gi midlertidig medlemskap." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "Invitasjonen ble satt til å aldri utløpe." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "Språket de fleste i fellesskapet ditt snakker. Brukes til å filtrere resultater i Oppdag." @@ -32518,6 +34051,11 @@ msgstr "Lenken kan fortsatt fungere. Prøv igjen om et øyeblikk." msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "Kontrollen for vokseninnhold ble avbrutt. Du kan lukke denne fanen og prøve igjen fra appen." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "Medlemmet er ikke lenger midlertidig." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "Den nye prisen er allerede planlagt for {effectiveDate}." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "Den nye talekanalen vil gjenbruke tillatelsene, brukergrensen og bithastigheten fra <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "Overstyringen tillot {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "Overstyringen nektet {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "Siden du leter etter finnes ikke eller har blitt flyttet." @@ -32565,6 +34113,11 @@ msgstr "Den oppgitte redirect_uri er ikke registrert for denne appen." msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "Den oppgitte redirect_uri må bruke HTTP eller HTTPS." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "Rollen ga {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "Klistremerket ble lastet opp som animert." msgid "The sticker was uploaded as static." msgstr "Klistremerket ble lastet opp som statisk." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "Klistremerket ble lastet opp av {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "Systemet ga {target} rollen {role}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "Systemet fjernet rollen {role} fra {target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "Brukernavnet <0>{fluxerTag} er allerede tatt. Hvis du fortsetter, vi msgid "The verification code is invalid or expired." msgstr "Bekreftelseskoden er ugyldig eller utløpt." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "Webhooken ble opprettet av {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Dette kortet samsvarer ikke med faktureringslandet ditt, så det kan ikke brukes for denne lokale valutaen. Bruk et lokalt kort, eller gå tilbake til {productName} og velg en annen betalingsmåte." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "Denne kategorien inneholder allerede maksimalt {maxChannelsPerCategory} kanaler." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Spor moderatorhandlinger i fellesskapet." @@ -33953,6 +35526,11 @@ msgstr "Overføre gruppeeierskap til {userName}?" msgid "Transfer ownership" msgstr "Overfør eierskap" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Overførte fellesskapseierskap til {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Slå på strømmepersonvern" msgid "Turn text smileys into emoji" msgstr "Gjør tekstsmilefjes om til emoji" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Slo av voksent innhold." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Slo av sakte modus." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "Slo av innholdsadvarselen." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Slo av det løsrevne banneret." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Slo av mikrofonen til medlemmet i dette fellesskapet." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Slo på voksent innhold." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "Slo på innholdsadvarselen." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Slo på det løsrevne banneret." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "Slo på mikrofonen til medlemmet igjen i dette fellesskapet." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Å slå av tillatelser kan hindre appen i å fungere korrekt." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "Ukrainsk" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Kunne ikke laste inn aktivitetsloggen" @@ -34859,6 +36482,7 @@ msgstr "Ukjent mål" msgid "unknown user" msgstr "ukjent bruker" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "ukjent bruker" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Brukes kun i dette fellesskapet." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Vermont" msgid "Version" msgstr "Versjon" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Veldig høy" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Webkamera" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Webhook opprettet" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhook slettet" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Webhook-navn" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhook oppdatert" diff --git a/fluxer_app/src/features/i18n/locales/pl/messages.po b/fluxer_app/src/features/i18n/locales/pl/messages.po index eab23e7ef..75f1c3ee5 100644 --- a/fluxer_app/src/features/i18n/locales/pl/messages.po +++ b/fluxer_app/src/features/i18n/locales/pl/messages.po @@ -56,6 +56,31 @@ msgstr "{a} pisze…" msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} i {c} piszą…" +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} dodał nadpisanie uprawnień dla {user} w kanale {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} dodał nadpisanie uprawnień dla @everyone w kanale {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} dodał nadpisanie uprawnień dla roli {role} w kanale {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} dodał naklejkę." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} dodał emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor}: dodano uprawnienia kanału dla {targetEntity} w {channelNode}." @@ -64,35 +89,200 @@ msgstr "{actor}: dodano uprawnienia kanału dla {targetEntity} w {channelNode}." msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor}: dodano uprawnienia kanału dla {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} dodał bota {target} jako tymczasowego członka." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} dodał bota {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor}: dodano bota {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} dodał emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor}: dodano emoji {namedTarget}." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} dodał naklejkę {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor}: dodano naklejkę {namedTarget}." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} zbanował {target} na {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} zbanował {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor}: zbanowano {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} zmienił nałożoną na {target} blokadę wysyłania wiadomości, reagowania i dołączania do rozmowy głosowej tak, aby zakończyła się {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} zmienił pseudonim użytkownika {target} z {oldNick} na {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} zmienił nadpisania uprawnień kategorii {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} zmienił nadpisania uprawnień kanału {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} zmienił nadpisania uprawnień kanału linku {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} zmienił nadpisania uprawnień kanału tekstowego {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} zmienił nadpisania uprawnień kanału głosowego {channel}." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} zmienił niestandardowy adres URL z {oldCode} na {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} zmienił awatar swojego profilu społeczności." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} zmienił baner swojego profilu społeczności." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} zmienił biogram swojego profilu społeczności na {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} zmienił swój pseudonim z {oldNick} na {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} utworzył webhooka." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} utworzył kategorię {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} utworzył kanał {channel} w {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} utworzył kanał {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor}: utworzono kanał {namedTarget}." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} utworzył zaproszenie {code} do kanału {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} utworzył zaproszenie {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor}: utworzono zaproszenie {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} utworzył kanał linku {channel} w {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} utworzył kanał linku {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor}: utworzono rolę {namedTarget}." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} utworzył rolę {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} utworzył kanał tekstowy {channel} w kategorii {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} utworzył kanał tekstowy {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} utworzył kanał głosowy {channel} w kategorii {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} utworzył kanał głosowy {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} utworzył webhooka {name} w kanale {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} utworzył webhooka {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor}: utworzono webhooka {namedTarget}." @@ -103,49 +293,209 @@ msgstr "{actor}: utworzono webhooka {namedTarget}." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor}: usunięto {0} {bulkCount, plural, one {wiadomość} few {wiadomości} many {wiadomości} other {wiadomości}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} usunął {count, plural, one {# wiadomość} few {# wiadomości} many {# wiadomości} other {# wiadomości}} w kanale {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} usunął {count, plural, one {# wiadomość} few {# wiadomości} many {# wiadomości} other {# wiadomości}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} usunął wiadomość w {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} usunął wiadomość." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor}: usunięto wiadomość{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} usunął naklejkę." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} usunął webhooka." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} usunął emoji." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor}: usunięto wiele wiadomości{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} usunął kilka wiadomości w {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} usunął kilka wiadomości." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} usunął kategorię {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} usunął kanał {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor}: usunięto kanał {namedTarget}." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} usunął emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor}: usunięto emoji {namedTarget}." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} usunął zaproszenie {code} do kanału {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} usunął zaproszenie {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor}: usunięto zaproszenie {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} usunął kanał linku {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor}: usunięto rolę {namedTarget}." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} usunął rolę {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} usunął naklejkę {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor}: usunięto naklejkę {namedTarget}." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} usunął kanał tekstowy {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} usunął kanał głosowy {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} usunął webhooka {name} z kanału {channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} usunął webhooka {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor}: usunięto webhooka {namedTarget}." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} odłączył {target} od kanału {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} odłączył {target} od kanału głosowego." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor}: odłączono {targetMember} od rozmowy głosowej." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} rozłączył się z {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} odłączył się od kanału głosowego." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} nadał {target} rolę {role}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} wyrzucił {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor}: wyrzucono {targetMember} ze społeczności." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} pozwolił {target} ponownie słyszeć innych w tej społeczności." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} wprowadził zmianę, której ta wersja aplikacji nie może wyświetlić." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} przeniósł {target} z {oldChannel} do {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} przeniósł {target} do kanału {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} przeniósł {target} do innego kanału głosowego." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor}: przeniesiono {targetMember} do {channelNode}." @@ -154,16 +504,68 @@ msgstr "{actor}: przeniesiono {targetMember} do {channelNode}." msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor}: przeniesiono {targetMember} do innego kanału głosowego." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} przeniósł się z {oldChannel} do {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} przeniósł rolę {role} niżej na liście członków." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} przeniósł rolę {role} niżej na liście ról." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} przeniósł rolę {role} wyżej na liście członków." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} przeniósł rolę {role} wyżej na liście ról." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} przeniósł się do {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} przeniósł się do innego kanału głosowego." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} wstrzymał zaproszenia." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor}: wykonano działanie w dzienniku audytu dotyczące {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} przypiął wiadomość w {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} przypiął wiadomość." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor}: przypięto wiadomość{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor}: usunięto nieaktywnych członków." @@ -179,19 +581,249 @@ msgstr "{actor}: usunięto uprawnienia kanału dla {targetEntity} w {channelNode msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor}: usunięto uprawnienia kanału dla {targetEntity}." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} usunął pseudonim {nick} użytkownikowi {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} usunął nadpisanie uprawnień dla {user} z kanału {channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} usunął nadpisanie uprawnień dla @everyone z kanału {channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} usunął nadpisanie uprawnień dla roli {role} z kanału {channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} usunął rolę {role} użytkownikowi {target}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} cofnął czasowe ograniczenie użytkownika {target}." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} usunął niestandardowy adres URL {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} usunął kolor akcentu swojego profilu społeczności." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} usunął awatar swojego profilu społeczności." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} usunął baner swojego profilu społeczności." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} usunął biogram swojego profilu społeczności." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} usunął zaimki ze swojego profilu społeczności." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} usunął swój pseudonim {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} zmienił nazwę kategorii z {oldName} na {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} zmienił nazwę kanału {oldName} na {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} zmienił nazwę społeczności z {oldName} na {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} zmienił nazwę emoji z {oldEmoji} na {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} zmienił nazwę kanału linku z {oldName} na {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} zmienił nazwę roli z {oldName} na {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} zmienił nazwę naklejki z {oldName} na {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} zmienił nazwę kanału tekstowego z {oldName} na {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} zmienił nazwę kanału głosowego z {oldName} na {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} zmienił nazwę webhooka z {oldName} na {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} zresetował pozycję roli {role} na liście członków." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} wznowił zaproszenia." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} ustawił pozycję roli {role} na liście członków." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} nadał użytkownikowi {target} pseudonim {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} ustawił niestandardowy adres URL na {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} ustawił kolor akcentu swojego profilu społeczności na {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} ustawił awatar swojego profilu społeczności." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} ustawił baner swojego profilu społeczności." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} ustawił biogram swojego profilu społeczności na {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} ustawił zaimki w swoim profilu społeczności na {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} ustawił swój pseudonim na {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} wyłączył {target} możliwość słyszenia innych w tej społeczności." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} nałożył czasowe ograniczenie na {target} do {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} przekazał własność społeczności {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} ponownie włączył mikrofon {target} w tej społeczności." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} wyłączył mikrofon {target} w tej społeczności." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} cofnął bana dla {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor}: cofnięto bana dla {targetMember}." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} odpiął wiadomość w {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} odpiął wiadomość." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor}: odpięto wiadomość{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} zaktualizował {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor}: zaktualizowano dane {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} zaktualizował naklejkę." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} zaktualizował webhooka." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} zaktualizował emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor}: zaktualizowano uprawnienia kanału dla {targetEntity} w {channelNode}." @@ -204,35 +836,112 @@ msgstr "{actor}: zaktualizowano uprawnienia kanału dla {targetEntity}." msgid "{actor} updated roles for {targetMember}." msgstr "{actor}: zaktualizowano role dla {targetMember}." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} zaktualizował kategorię {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} zaktualizował kanał {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor}: zaktualizowano kanał {namedTarget}." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor}: zaktualizowano ustawienia społeczności." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} zaktualizował emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor}: zaktualizowano emoji {namedTarget}." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} zaktualizował zaproszenie {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor}: zaktualizowano zaproszenie {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} zaktualizował kanał linku {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} zaktualizował nadpisanie uprawnień dla {user} w kanale {channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} zaktualizował nadpisanie uprawnień dla @everyone w kanale {channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} zaktualizował nadpisanie uprawnień dla roli {role} w kanale {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor}: zaktualizowano rolę {namedTarget}." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} zaktualizował rolę {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} zaktualizował role {target}." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} zaktualizował naklejkę {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor}: zaktualizowano naklejkę {namedTarget}." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} zaktualizował kanał tekstowy {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} zaktualizował kanał głosowy {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} zaktualizował webhooka {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor}: zaktualizowano webhooka {namedTarget}." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} zaktualizował swój profil społeczności." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# element} few {# elementy} many {# elementów} oth msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# członek} few {# członków} many {# członków} other {# członków}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# dodatkowe uprawnienie} few {# dodatkowe uprawnienia} many {# dodatkowych uprawnień} other {# dodatkowych uprawnień}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# wspólna społeczność} few {# wspólne społeczności} many {# wspólnych społeczności} other {# wspólnych społeczności}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {Pokaż # urządzenie} few {Pokaż # urządzenia} ma msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Wyloguj # urządzenie} few {Wyloguj # urządzenia} many {Wyloguj # urządzeń} other {Wyloguj # urządzeń}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {Zaproszenie było ograniczone do # użycia.} few {Zaproszenie było ograniczone do # użyć.} many {Zaproszenie było ograniczone do # użyć.} other {Zaproszenie było ograniczone do # użyć.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {Zaproszenie zostało użyte # raz.} few {Zaproszenie zostało użyte # razy.} many {Zaproszenie zostało użyte # razy.} other {Zaproszenie zostało użyte # razy.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} kl./s" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "Kanały {guildName}" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Aktywność" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Dziennik aktywności" @@ -2713,10 +3437,60 @@ msgstr "Dodano {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "Dodano {length, plural, one {# odwołanie do lokalnego pliku} few {# odwołania do lokalnych plików} many {# odwołań do lokalnych plików} other {# odwołania do lokalnego pliku}}." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "Dodano tło osadzonych wiadomości." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Dodano baner społeczności." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Dodano ikonę społeczności." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "Dodano ostrzeżenie o treści z tekstem {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Dodano ostrzeżenie o treści." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "Dodano awatar." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Dodano tło zaproszenia." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Dodano role." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Dodano awatar profilu członka w społeczności." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Dodano baner profilu członka w społeczności." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "Dodano rolę {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Sterowanie wyrównaniem jest dostępne tylko na szerszych ekranach" #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Wszystkie <0/> na zawsze. Bez opłat i odnawiania." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Wszystkie działania" @@ -3001,10 +3775,12 @@ msgstr "Wszystkie języki" msgid "All members" msgstr "Wszyscy członkowie" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "Cały okres" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Wszyscy użytkownicy" @@ -3197,6 +3973,16 @@ msgstr "Zezwolono na {0} i usunięto zezwolenie na {1}." msgid "Allowed {0}." msgstr "Zezwolono na {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "Zezwolono na {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Zezwolono wszystkim członkom na wspominanie tej roli." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Dozwolone osoby dzwoniące" @@ -3205,15 +3991,35 @@ msgstr "Dozwolone osoby dzwoniące" msgid "Allowed everyone to mention this role." msgstr "Zezwolono wszystkim na wzmianki o tej roli." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Zezwolono na elastyczne nazwy kanałów tekstowych." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Dozwolone zaproszenia" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Zezwolono innym na klonowanie emoji tej społeczności." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Zezwolono innym na klonowanie naklejek tej społeczności." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Dozwolone przekierowania" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Dozwolono do {count, plural, one {# połączenia} few {# połączeń} many {# połączeń} other {# połączeń}} na członka." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Banuj członków" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Banuj członków w społeczności, z możliwością usunięcia ich ostatnich wiadomości." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Powód zbanowania" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Zablokuj użytkownika" msgid "Blocked" msgstr "Zablokowani" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Zablokowano członkowi wysyłanie wiadomości, reagowanie i dołączanie do rozmowy głosowej do {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Bot" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Dodano bota" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Kategoria usunięta" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Kategoria pełna" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Wyśrodkuj" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Wyśrodkowano" @@ -6298,11 +7116,183 @@ msgstr "Zmień swoją nazwę użytkownika" msgid "Changed nickname from {0} to {1}." msgstr "Zmieniono pseudonim z \"{0}\" na \"{1}\"." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Zmieniono tryb wolny z {oldDuration} na {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "Zmieniono kanał AFK z {oldChannel} na {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "Zmieniono limit czasu AFK z {oldDuration} na {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "Zmieniono jakość dźwięku z {oldKbps} kb/s na {newKbps} kb/s." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Zmieniono awatar." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Zmieniono przepływność na {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Zmieniono blokadę wysyłania wiadomości, reagowania i dołączania do rozmowy głosowej tak, aby zakończyła się {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Zmieniono tło osadzonych wiadomości." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Zmieniono baner społeczności." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Zmieniono ikonę społeczności." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "Zmieniono liczbę połączeń na członka z {oldCount} na {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "Zmieniono tekst ostrzeżenia o treści z {oldText} na {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Zmieniono niestandardową ikonę roli." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Zmieniono niestandardowy tekst ostrzeżenia z {oldText} na {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "Zmieniono domyślne powiadomienia z {oldSetting} na {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Zmieniono opis z {oldText} na {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Zmieniono filtr treści dla dorosłych z {oldFilter} na {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Zmieniono wyrównanie tła zaproszenia z {oldAlignment} na {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Zmieniono tło zaproszenia." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "Zmieniono link z {oldUrl} na {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Zmieniono awatar profilu członka w społeczności." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Zmieniono baner profilu członka w społeczności." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "Zmieniono biogram profilu członka w społeczności na {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "Zmieniono próg historii wiadomości z {oldDate} na {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "Zmieniono nazwę z {oldName} na {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "Zmieniono pseudonim z {oldNick} na {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Zmieniono kolor roli z {oldColor} na {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Zmieniono ikonę roli z {oldEmoji} na {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "Zmieniono kanał systemowy z {oldChannel} na {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Zmieniono temat z {oldText} na {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "Zmieniono limit użytkowników z {oldCount} na {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "Zmieniono niestandardowy adres URL z {oldCode} na {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Zmieniono poziom weryfikacji z {oldLevel} na {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "Zmieniono region głosowy z {oldRegion} na {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "kanał" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Kanał lub kategoria" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Dodano indywidualne uprawnienia kanału" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Usunięto indywidualne uprawnienia kanału" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Zaktualizowano indywidualne uprawnienia kanału" @@ -7815,7 +8805,7 @@ msgstr "Społeczności liczące ponad 250 osób mają wymuszone ustawienie „ty #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Usunąć Twoje wiadomości w tej rozmowie?" msgid "Deleted" msgstr "Usunięto" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "Usunięto ostatnie wiadomości członka z okresu: {duration}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Usunięty tekst" msgid "Deleted your messages." msgstr "Twoje wiadomości zostały usunięte." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "usunięta-kategoria" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "usunięty-kanał" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "usunięta-rola" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "Zabroniono: {0}; cofnięto zakaz: {1}." msgid "Denied {0}." msgstr "Zabroniono: {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "Odmówiono {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Przywrócono widoczność osadzonych treści" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Klonowanie emoji włączone" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Utworzono emoji" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Emoji usunięte" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Brak miejsca na emoji" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Emoji zaktualizowane" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Filtruj według daty utworzenia konta" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Filtruj według działania" @@ -14572,18 +15587,22 @@ msgstr "Filtruj według ról" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Filtruj według użytkownika" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Filtruj wszystkich" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Filtruj członków bez ról" @@ -15890,6 +16909,11 @@ msgstr "Przyznano: {0}; odebrano: {1}." msgid "Granted {0}." msgstr "Przyznano: {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "Przyznano {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Cześć, {username}! Mamy nadzieję, że Ci się spodoba." msgid "Hey, {username}, welcome aboard!" msgstr "Cześć, {username}, witamy na pokładzie!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Ukryto wiadomości o dołączeniu na kanale systemowym." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Ukryto koronę właściciela społeczności." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Ukryć własną kamerę?" msgid "Hide your own screen share?" msgstr "Ukryć udostępnianie własnego ekranu?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Wysoki" @@ -17688,7 +18724,7 @@ msgstr "Zaproś" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "Kod zaproszenia to {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Zaproszenie utworzone" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Zaproszenie usunięte" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Zaproszenie niedostępne" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Zaproszenie zaktualizowane" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (lewy)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Wyrównano do lewej" @@ -18745,6 +19783,11 @@ msgstr "Czytniki ekranu będą ogłaszać nowe wiadomości, gdy tylko pojawią s msgid "Let the community self-moderate" msgstr "Pozwól społeczności na samodzielną moderację" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Ponownie zezwolono członkowi na słyszenie innych w tej społeczności." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Pozwala niestandardowemu CSS na wyświetlanie przezroczystych obszarów okna po ponownym uruchomieniu aplikacji komputerowej." @@ -18815,6 +19858,16 @@ msgstr "Polubiono." msgid "Likes: <0>{countLabel}" msgstr "Polubienia: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "Ograniczono możliwość wzmianki o tej roli do członków z uprawnieniami do wzmianki o dowolnej roli." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Ograniczono kanał do {count, plural, one {# użytkownika} few {# użytkowników} many {# użytkowników} other {# użytkowników}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Luizjana" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Niski" @@ -19204,6 +20259,11 @@ msgstr "Domyślne urządzenie audio w systemie macOS" msgid "macOS permissions" msgstr "Uprawnienia macOS" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Przełączono kanał na dziedziczenie ustawienia treści dla dorosłych." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Oznaczono emoji jako animowane." msgid "Marked emoji as static." msgstr "Oznaczono emoji jako statyczne." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Oznaczono kanał jako zawierający treści dla dorosłych." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Oznaczono kanał jako niezawierający treści dla dorosłych." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "Oznaczono członka jako stałego." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Zatrzymaj odtwarzanie" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Średni" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Średni rozmiar (domyślny)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Członek" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Działania dotyczące członka {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Członek zbanowany" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Członek rozłączony" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Członek wyrzucony" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Listy członków są tymczasowo niedostępne w tej społeczności" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Członek przeniesiony" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Nie znaleziono członka" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Zaktualizowano role członka" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Członek od" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Cofnięto bana członka" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Członek zaktualizowany" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Członkowie są usuwani, gdy są offline, chyba że otrzymają rolę." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Członkowie usunięci" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "Członkowie bez uprawnienia {readMessageHistoryPermissionLabel} mogą wyświetlać wiadomości wysłane po tej dacie." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Członkowie, wybrana karta" @@ -20077,8 +21149,10 @@ msgstr "Wzmianki o Tobie są tutaj widoczne przez {recentMentionsRetentionDays} msgid "Mentions of you show up here for {retentionDays} days." msgstr "Wzmianki o Tobie są tutaj widoczne przez {retentionDays} dni." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Tylko wzmianki" @@ -20104,7 +21178,7 @@ msgstr "wiadomość" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Wiadomość" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Debugowanie wiadomości" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Wiadomość usunięta" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Lista wiadomości dla {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Wiadomość przypięta" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Czas wiadomości" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Wiadomość odpięta" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Wiadomości i multimedia" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Wiadomości usunięte" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Moderacja" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Tutaj pojawią się działania moderacyjne i zmiany w społeczności." @@ -20915,16 +21989,51 @@ msgstr "Przenieś do" msgid "Move to…" msgstr "Przenieś do…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Przeniesiono z {oldChannel} do {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Przeniesiono kanał z kategorii {oldCategory} do kategorii {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Przeniesiono kanał do kategorii {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Przeniesiono kanał do kategorii {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "Przeniesiono rolę niżej na liście członków." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "Przeniesiono rolę niżej na liście ról." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Przeniesiono rolę na pozycję {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "Przeniesiono rolę wyżej na liście członków." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "Przeniesiono rolę wyżej na liście ról." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Nowa wiadomość" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Nowe wiadomości" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "Brak odniesień do plików lokalnych" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Brak logów" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "Nie podano powodu" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "Nie podano powodu." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Bez konwersji" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Bez konwersji" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "Kreator adresu URL OAuth2" msgid "Objects" msgstr "Obiekty" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Obiekty" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Wyłączone" @@ -23523,6 +24636,21 @@ msgstr "Nie udało się załadować oryginalnej wiadomości" msgid "Original message was deleted" msgstr "Oryginalna wiadomość została usunięta" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Pierwotnie zbanowany przez {user} dnia {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Pierwotnie zbanowany przez {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Pierwotnie zbanowany dnia {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Wstrzymano przez ustawienie ograniczenia animacji. Włącz, aby nadal od msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "Wstrzymano przez ustawienie ograniczenia animacji. Włącz, aby nadal odtwarzać GIF-y." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Wstrzymano zaproszenia." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Trwale usuń swoje konto i wszystkie powiązane dane. Tej operacji nie m msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Trwale usuń swoje wiadomości z rozmów prywatnych, czatów grupowych i społeczności. Proces działa w tle, a po jego zakończeniu otrzymasz wiadomość prywatną." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Dodano nadpisanie uprawnień" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Usunięto nadpisanie uprawnień" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Zaktualizowano nadpisanie uprawnień" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Chcesz ulepszyć?" msgid "Real-time" msgstr "Czas rzeczywisty" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Powód" @@ -26291,26 +27440,166 @@ msgstr "Usunięto rolę „{oldLabel}”." msgid "Removed roles." msgstr "Usunięto role." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "Usunięto kanał AFK." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Usunięto awatar." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Usunięto kanał z kategorii." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Usunięto kanał z kategorii {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Usunięto tło osadzonych wiadomości." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "Usunięto baner społeczności." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Usunięto ikonę społeczności." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "Usunięto tekst ostrzeżenia o treści." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Usunięto ostrzeżenie o treści." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Usunięto niestandardową ikonę roli." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Usunięto niestandardowy tekst ostrzeżenia." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Usunięto opis {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Usunięto tło zaproszenia." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Usunięto link." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Usunięto kolor akcentu profilu członka w społeczności." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Usunięto awatar profilu członka w społeczności." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Usunięto baner profilu członka w społeczności." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Usunięto biogram profilu członka w społeczności." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "Usunięto zaimki z profilu członka w społeczności." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Usunięto próg historii wiadomości." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "Usunięto pseudonim {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "Usunięto nadpisanie dla {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "Usunięto rolę {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Usunięto kolor roli." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Usunięto ikonę roli." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Usunięto przypisanie kanału z zasadami." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "Usunięto przypisanie kanału systemowego." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "Usunięto czasowe ograniczenie." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "Usunięto temat {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Usunięto emoji Unicode." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Usunięto limit użytkowników." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "Usunięto niestandardowy adres URL {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Cofnięto czasowe ograniczenie użytkownika {targetUserTag}" @@ -26381,6 +27670,11 @@ msgstr "Zmieniono nazwę naklejki na „{0}”." msgid "Renamed the channel to {0}." msgstr "Zmieniono nazwę kanału na „{0}”." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Zmieniono nazwę społeczności z {oldName} na {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Wymagaj uwierzytelniania dwuskładnikowego od moderatorów, zanim będą msgid "Required" msgstr "Wymagane" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "Zaczęto wymagać uwierzytelniania dwuskładnikowego (2FA) do działań moderacyjnych." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Resetuj odstępy" msgid "Reset the connection limit." msgstr "Zresetowano limit połączeń." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "Zresetowano pozycję roli na liście członków." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Ograniczono wzmianki o tej roli do członków z odpowiednim uprawnieniem msgid "Resubscribe" msgstr "Ponów subskrypcję" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Wznowiono zaproszenia." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Wróć do logowania" @@ -27330,6 +28639,11 @@ msgstr "Odwołać to zaproszenie? Tej operacji nie można cofnąć." msgid "Revoked {0}." msgstr "Cofnięto: {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "Cofnięto {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (prawy)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Wyrównane do prawej" @@ -27408,7 +28724,7 @@ msgstr "Dzwonek" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Rola" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Kolor roli" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Rola utworzona" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Rola utworzona pomyślnie" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Rola usunięta" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "Nazwa roli jest wymagana" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Rola zaktualizowana" @@ -28930,11 +30246,21 @@ msgstr "Sesje" msgid "Set {fieldNode} to {0}." msgstr "Nowa wartość pola {fieldNode}: {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Ustawiono niestandardową ikonę roli." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Ustaw status niestandardowy" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Ustawiono pozycję roli na liście członków." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "Ustawiono kolor roli na <0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "Ustawiono tryb wolny na {0} {seconds, plural, one {sekundę} few {sekundy} many {sekund} other {sekundy}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Ustawiono tryb wolny na {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Ustaw status" msgid "Set the AFK channel to {0}." msgstr "Ustawiono kanał AFK na {0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "Ustawiono kanał AFK na {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "Ustawiono czas bezczynności AFK w sekundach: {0}." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "Ustawiono jakość dźwięku na {kbps} kb/s." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "Ustawiono typ kanału na {0}." msgid "Set the connection limit to {0}." msgstr "Ustawiono limit połączeń na {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "Ustawiono tekst ostrzeżenia o treści na {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "Ustawiono niestandardowy tekst ostrzeżenia na {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "Ustawiono opis na {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "Ustawiono wyrównanie tła strony zaproszenia na {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "Ustawiono link na {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "Ustawiono kolor akcentu profilu członka w społeczności na {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "Ustawiono biogram profilu członka w społeczności na {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "Ustawiono zaimki w profilu członka w społeczności na {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "Ustawiono próg historii wiadomości na {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "Ustawiono pseudonim na {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Ustaw publiczną nazwę produktu, kolor motywu i zasoby graficzne, które wyświetlają klienci." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "Ustawiono kolor roli na {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "Ustawiono ikonę roli na {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "Ustawiono kanał z zasadami na {0}." msgid "Set the system channel to {0}." msgstr "Ustawiono kanał systemowy na {0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "Ustawiono kanał systemowy na {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "Ustawiono temat na {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "Ustawiono limit użytkowników na {0}." msgid "Set the vanity URL to {0}." msgstr "Ustawiono niestandardowy adres URL na {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "Ustawiono niestandardowy adres URL na {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "Ustawiono region głosowy na {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "Ustawiono region głosowy na automatyczny." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Pokaż swój globalny baner profilowy w tej społeczności" msgid "Show your Visionary as a regular subscription instead" msgstr "Pokazuj Visionary jako zwykłą subskrypcję" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Wyświetlono członków z tą rolą w osobnej sekcji na liście członków." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Coś poszło nie tak podczas przetwarzania zwrotu. Skontaktuj się z pomocą techniczną, jeśli problem będzie się powtarzał." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Podczas ładowania dziennika aktywności wystąpił problem." @@ -31105,6 +32531,11 @@ msgstr "Rozpocznij połączenie głosowe" msgid "Start with computer" msgstr "Uruchamiaj z komputerem" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "Zaczęto wyświetlać członków z tą rolą osobno." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "naklejka" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "Nie udało się wystarczająco skompresować naklejki" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Naklejka utworzona" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Naklejka usunięta" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Brak miejsca na naklejki" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Naklejka zaktualizowana" @@ -31412,6 +32843,46 @@ msgstr "Zatrzymaj oglądanie transmisji" msgid "Stop." msgstr "Zatrzymaj." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Przestano zezwalać na elastyczne nazwy kanałów tekstowych." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Przestano zezwalać innym na klonowanie emoji tej społeczności." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Przestano zezwalać innym na klonowanie naklejek tej społeczności." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Przestano wyświetlać członków z tą rolą osobno." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Przestano ukrywać wiadomości o dołączeniu na kanale systemowym." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Przestano ukrywać koronę właściciela społeczności." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Przestano wymagać uwierzytelniania dwuskładnikowego (2FA) do działań moderacyjnych." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Wyłączono członkowi możliwość słyszenia innych w tej społeczności." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Synchronizuj z kategorią" msgid "Syntax highlighting" msgstr "Podświetlanie składni" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "System" @@ -32449,6 +33922,16 @@ msgstr "Sprawdzanie dostępności aktualizacji, które mogą rozwiązać ten pro msgid "The app should now be signed in to your account." msgstr "Aplikacja powinna być teraz zalogowana na Twoje konto." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "Ban wygasł już {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "Ban miał wygasnąć {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "Bot został dodany do <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "Aktualizacja aplikacji na komputer została pobrana. Uruchom ponownie {p msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "Pobrany plik został zapisany na Twoim komputerze. Zainstaluj go za pomocą swojego menedżera pakietów." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "Emoji zostało przesłane przez {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "Plik zawiera token weryfikacyjny, który pobierzemy z <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "Plik, który próbujesz wysłać, przekracza maksymalny rozmiar wynoszą msgid "The following people can't be added to this group DM:" msgstr "Następujących osób nie można dodać do tego czatu grupowego:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "Zaproszenie zostało utworzone przez {user} dnia {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "Zaproszenie zostało utworzone przez {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "Zaproszenie zostało utworzone {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "Nikt nie skorzystał z zaproszenia." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "Zaproszenie miało wygasnąć {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "Zaproszenie zostało ustawione tak, aby pozwalało na nieograniczoną liczbę użyć." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "Zaproszenie zostało ustawione tak, aby wygasło po {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "Zaproszenie zostało ustawione tak, aby przyznawało tymczasowe członkostwo." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "Zaproszenie zostało ustawione tak, aby nigdy nie wygasało." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "Język używany przez większość Twojej społeczności. Służy do filtrowania wyników w Odkrywaniu." @@ -32518,6 +34051,11 @@ msgstr "Link może nadal działać. Spróbuj ponownie za chwilę." msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "Weryfikacja dostępu do treści dla dorosłych została anulowana. Możesz zamknąć tę kartę i spróbować ponownie z poziomu aplikacji." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "Członek nie jest już tymczasowy." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "Nowa cena jest już zaplanowana na {effectiveDate}." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "Nowy kanał głosowy będzie ponownie używać uprawnień, limitu użytkowników i przepływności z <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "Nadpisanie zezwalało na {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "Nadpisanie odmówiło {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "Strona, której szukasz, nie istnieje lub została przeniesiona." @@ -32565,6 +34113,11 @@ msgstr "Podany adres redirect_uri nie jest zarejestrowany dla tej aplikacji." msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "Podany adres redirect_uri musi używać protokołu HTTP lub HTTPS." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "Rola przyznała {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "Naklejka została przesłana jako animowana." msgid "The sticker was uploaded as static." msgstr "Naklejka została przesłana jako statyczna." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "Naklejka została przesłana przez {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "System nadał {target} rolę {role}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "System usunął rolę {role} użytkownikowi {target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "Nazwa użytkownika <0>{fluxerTag} jest już zajęta. Kontynuowanie s msgid "The verification code is invalid or expired." msgstr "Kod weryfikacyjny jest nieprawidłowy lub wygasł." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "Webhook został utworzony przez {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Ta karta nie została wydana w Twoim kraju rozliczeniowym, więc nie można jej użyć do płatności w tej lokalnej walucie. Użyj karty z tego kraju lub wróć do {productName} i wybierz inną metodę płatności." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "Ta kategoria zawiera już maksymalną liczbę {maxChannelsPerCategory} kanałów." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Śledź działania moderatorów w całej społeczności." @@ -33953,6 +35526,11 @@ msgstr "Przekazać własność grupy użytkownikowi {userName}?" msgid "Transfer ownership" msgstr "Przekaż własność" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Przekazano własność społeczności {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Włącz prywatność transmisji" msgid "Turn text smileys into emoji" msgstr "Zamieniaj emotikony tekstowe na emoji" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Wyłączono treści dla dorosłych." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Wyłączono tryb wolny." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "Wyłączono ostrzeżenie o treści." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Wyłączono odłączony baner." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Wyłączono mikrofon członka w tej społeczności." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Włączono treści dla dorosłych." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "Włączono ostrzeżenie o treści." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Włączono odłączony baner." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "Ponownie włączono mikrofon członka w tej społeczności." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Wyłączenie zakresów autoryzacji może uniemożliwić poprawne działanie aplikacji." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "Ukraiński" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Nie można załadować dzienników aktywności" @@ -34859,6 +36482,7 @@ msgstr "Nieznany obiekt docelowy" msgid "unknown user" msgstr "nieznany użytkownik" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "nieznany użytkownik" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Używany tylko w tej społeczności." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Vermont" msgid "Version" msgstr "Wersja" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Bardzo wysoki" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Kamerka internetowa" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Utworzono webhooka" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhook usunięty" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Nazwa webhooka" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhook zaktualizowany" diff --git a/fluxer_app/src/features/i18n/locales/pt-BR/messages.po b/fluxer_app/src/features/i18n/locales/pt-BR/messages.po index 90276f529..90cb8220b 100644 --- a/fluxer_app/src/features/i18n/locales/pt-BR/messages.po +++ b/fluxer_app/src/features/i18n/locales/pt-BR/messages.po @@ -56,6 +56,31 @@ msgstr "{a} está digitando..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} e {c} estão digitando..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} adicionou uma permissão personalizada para {user} em {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} adicionou uma permissão personalizada para @everyone em {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} adicionou uma permissão personalizada para o cargo {role} em {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} adicionou uma figurinha." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} adicionou um emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} adicionou permissões de canal para {targetEntity} em {channelNode}." @@ -64,35 +89,200 @@ msgstr "{actor} adicionou permissões de canal para {targetEntity} em {channelNo msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} adicionou permissões de canal para {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} adicionou o bot {target} como membro temporário." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} adicionou o bot {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} adicionou o bot {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} adicionou o emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} adicionou o emoji {namedTarget}." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} adicionou a figurinha {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} adicionou a figurinha {namedTarget}." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} baniu {target} por {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} baniu {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} baniu {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} alterou o bloqueio que impede {target} de enviar mensagens, reagir e entrar em canais de voz para terminar em {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} alterou o apelido de {target} de {oldNick} para {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} alterou as permissões da categoria {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} alterou as permissões do canal {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} alterou as permissões do canal de link {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} alterou as permissões do canal de texto {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} alterou as permissões do canal de voz {channel}." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} alterou a URL personalizada de {oldCode} para {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} alterou o avatar do perfil na comunidade." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} alterou o banner do perfil na comunidade." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} alterou a biografia do perfil na comunidade para {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} mudou o apelido de {oldNick} para {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} criou um webhook." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} criou a categoria {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} criou o canal {channel} em {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} criou o canal {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} criou o canal {namedTarget}." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} criou o convite {code} para {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} criou o convite {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} criou o convite {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} criou o canal de link {channel} em {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} criou o canal de link {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} criou o cargo {namedTarget}." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} criou o cargo {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} criou o canal de texto {channel} em {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} criou o canal de texto {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} criou o canal de voz {channel} em {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} criou o canal de voz {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} criou o webhook {name} em {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} criou o webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} criou o webhook {namedTarget}." @@ -103,49 +293,209 @@ msgstr "{actor} criou o webhook {namedTarget}." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} excluiu {0} {bulkCount, plural, =1 {mensagem} other {mensagens}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} excluiu {count, plural, one {# mensagem} other {# mensagens}} em {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} excluiu {count, plural, one {# mensagem} other {# mensagens}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} excluiu uma mensagem em {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} excluiu uma mensagem." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} excluiu uma mensagem{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} excluiu uma figurinha." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} excluiu um webhook." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} excluiu um emoji." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} excluiu várias mensagens{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} excluiu algumas mensagens em {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} excluiu algumas mensagens." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} excluiu a categoria {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} excluiu o canal {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} excluiu o canal {namedTarget}." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} excluiu o emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} excluiu o emoji {namedTarget}." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} excluiu o convite {code} para {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} excluiu o convite {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} excluiu o convite {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} excluiu o canal de link {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} excluiu o cargo {namedTarget}." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} excluiu o cargo {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} excluiu a figurinha {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} excluiu a figurinha {namedTarget}." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} excluiu o canal de texto {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} excluiu o canal de voz {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} excluiu o webhook {name} de {channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} excluiu o webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} excluiu o webhook {namedTarget}." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} desconectou {target} do {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} desconectou {target} da chamada de voz." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} desconectou {targetMember} do chat de voz." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} desconectou-se de {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} desconectou-se do canal de voz." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} deu a {target} o cargo {role}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} expulsou {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} expulsou {targetMember}." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} permitiu que {target} ouvisse os outros nesta comunidade novamente." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} fez uma alteração que esta versão do app não pode exibir." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} moveu {target} do {oldChannel} para o {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} moveu {target} para {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} moveu {target} para outro canal de voz." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} moveu {targetMember} para {channelNode}." @@ -154,16 +504,68 @@ msgstr "{actor} moveu {targetMember} para {channelNode}." msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} moveu {targetMember} para outro canal de voz." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} mudou de {oldChannel} para {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} moveu o cargo {role} para baixo na lista de membros." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} moveu o cargo {role} para baixo na lista de cargos." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} moveu o cargo {role} para cima na lista de membros." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} moveu o cargo {role} para cima na lista de cargos." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} mudou para {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} mudou para outro canal de voz." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} pausou os convites." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} realizou uma ação de auditoria em {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} fixou uma mensagem em {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} fixou uma mensagem." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} fixou uma mensagem{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} removeu membros inativos." @@ -179,19 +581,249 @@ msgstr "{actor} removeu as permissões de canal para {targetEntity} em {channelN msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} removeu as permissões de canal para {targetEntity}." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} removeu o apelido {nick} de {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} removeu a permissão personalizada para {user} em {channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} removeu a permissão personalizada para @everyone em {channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} removeu a permissão personalizada para o cargo {role} em {channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} removeu o cargo {role} de {target}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} removeu a suspensão temporária de {target}." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} removeu a URL personalizada {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} removeu a cor de destaque do perfil na comunidade." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} removeu o avatar do perfil na comunidade." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} removeu o banner do perfil na comunidade." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} removeu a biografia do perfil na comunidade." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} removeu os pronomes do perfil na comunidade." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} removeu o apelido {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} renomeou a categoria {oldName} para {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} renomeou o canal {oldName} para {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} renomeou a comunidade de {oldName} para {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} renomeou o emoji {oldEmoji} para {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} renomeou o canal de link {oldName} para {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} renomeou o cargo {oldName} para {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} renomeou a figurinha {oldName} para {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} renomeou o canal de texto {oldName} para {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} renomeou o canal de voz {oldName} para {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} renomeou o webhook {oldName} para {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} redefiniu a posição da lista de membros para o cargo {role}." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} retomou os convites." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} definiu uma posição na lista de membros para o cargo {role}." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} definiu o apelido de {target} para {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} definiu a URL personalizada para {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} definiu a cor de destaque do perfil na comunidade para {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} definiu o avatar do perfil na comunidade." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} definiu o banner do perfil na comunidade." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} definiu a biografia do perfil na comunidade como {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} definiu os pronomes do perfil na comunidade como {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} mudou o apelido para {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} impediu que {target} ouvisse os outros nesta comunidade." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} suspendeu temporariamente {target} até {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} transferiu a propriedade da comunidade para {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} reativou o microfone de {target} nesta comunidade." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} desativou o microfone de {target} nesta comunidade." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} desbaniu {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} desbaniu {targetMember}." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} desafixou uma mensagem em {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} desafixou uma mensagem." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} desafixou uma mensagem{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} atualizou {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} atualizou {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} atualizou uma figurinha." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} atualizou um webhook." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} atualizou um emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} atualizou as permissões de canal para {targetEntity} em {channelNode}." @@ -204,35 +836,112 @@ msgstr "{actor} atualizou as permissões do canal para {targetEntity}." msgid "{actor} updated roles for {targetMember}." msgstr "{actor} atualizou os cargos de {targetMember}." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} atualizou a categoria {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} atualizou o canal {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} atualizou o canal {namedTarget}." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} atualizou as configurações da comunidade." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} atualizou o emoji {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} atualizou o emoji {namedTarget}." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} atualizou o convite {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} atualizou o convite {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} atualizou o canal de link {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} atualizou a permissão personalizada para {user} em {channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} atualizou a permissão personalizada para @everyone em {channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} atualizou a permissão personalizada para o cargo {role} em {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} atualizou o cargo {namedTarget}." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} atualizou o cargo {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} atualizou os cargos de {target}." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} atualizou a figurinha {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} atualizou a figurinha {namedTarget}." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} atualizou o canal de texto {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} atualizou o canal de voz {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} atualizou o webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} atualizou o webhook {namedTarget}." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} atualizou o perfil na comunidade." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, =0 {# itens} one {# item} other {# itens}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, =0 {# membros} one {# membro} other {# membros}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# permissão adicional} other {# permissões adicionais}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, =0 {# comunidades em comum} one {# comunidade em comum} other {# comunidades em comum}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, =0 {Mostrar # dispositivos} one {Mostrar # dispositivo} msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, =0 {Sair de # dispositivos} one {Sair de # dispositivo} other {Sair de # dispositivos}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {O convite foi limitado a # uso.} other {O convite foi limitado a # usos.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {O convite foi usado # vez.} other {O convite foi usado # vezes.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "Canais de {guildName}" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Atividade" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Registro de atividades" @@ -2713,10 +3437,60 @@ msgstr "Adicionou {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "{length, plural, =1 {# referência de arquivo local adicionada.} other {# referências de arquivos locais adicionadas.}}" +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "Adicionou um plano de fundo do conteúdo incorporado no chat." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Adicionou um banner da comunidade." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Adicionou um ícone à comunidade." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "Adicionou um aviso de conteúdo com o texto {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Adicionou um aviso de conteúdo." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "Adicionou um avatar." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Adicionou um plano de fundo para convites." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Cargos adicionados." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Adicionou o avatar do perfil do membro na comunidade." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Adicionou o banner do perfil do membro na comunidade." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "Adicionou o cargo {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Os controles de alinhamento estão disponíveis apenas em telas mais lar #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Todas as <0/>, para sempre. Sem cobranças nem renovações." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Todas as ações" @@ -3001,10 +3775,12 @@ msgstr "Todos os idiomas" msgid "All members" msgstr "Todos os membros" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "Todo o período" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Todos os usuários" @@ -3197,6 +3973,16 @@ msgstr "Permitiu {0} e removeu a permissão para {1}." msgid "Allowed {0}." msgstr "Permitido {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "Permitiu {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Permitiu que todos os membros mencionassem este cargo." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Quem pode ligar" @@ -3205,15 +3991,35 @@ msgstr "Quem pode ligar" msgid "Allowed everyone to mention this role." msgstr "Todos receberam permissão para mencionar este cargo." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Permitiu nomes de canais de texto flexíveis." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Convites permitidos" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Permitiu que outros clonassem os emojis desta comunidade." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Permitiu que outros clonassem as figurinhas desta comunidade." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Redirecionamentos permitidos" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Permitiu até {count, plural, one {# conexão} other {# conexões}} por membro." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Banir membros" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Banir membros da comunidade, com a opção de excluir as mensagens recentes deles." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Motivo do banimento" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Bloquear usuário" msgid "Blocked" msgstr "Bloqueados" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Bloqueou o membro de enviar mensagens, reagir e entrar em canais de voz até {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Bot" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Bot adicionado" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Categoria excluída" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Categoria cheia" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Centralizar" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Centralizado" @@ -6298,11 +7116,183 @@ msgstr "Alterar seu nome de usuário" msgid "Changed nickname from {0} to {1}." msgstr "Apelido alterado de {0} para {1}." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Alterou o modo lento de {oldDuration} para {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "Alterou o canal AFK de {oldChannel} para {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "Alterou o tempo limite do AFK de {oldDuration} para {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "Alterou a qualidade do áudio de {oldKbps} kbps para {newKbps} kbps." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Alterou o avatar." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Alterou a taxa de bits para {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Alterou o bloqueio de envio de mensagens, reações e entrada em canais de voz para terminar em {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Alterou o plano de fundo do conteúdo incorporado no chat." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Alterou o banner da comunidade." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Alterou o ícone da comunidade." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "Alterou as conexões por membro de {oldCount} para {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "Alterou o texto do aviso de conteúdo de {oldText} para {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Alterou o ícone de cargo personalizado." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Alterou o texto de aviso personalizado de {oldText} para {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "Alterou a configuração padrão de notificações de {oldSetting} para {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Alterou a descrição de {oldText} para {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Alterou o filtro de conteúdo explícito de {oldFilter} para {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Alterou o alinhamento da imagem de fundo do convite de {oldAlignment} para {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Alterou o plano de fundo do convite." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "Alterou o link de {oldUrl} para {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Alterou o avatar do perfil do membro na comunidade." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Alterou o banner do perfil do membro na comunidade." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "Alterou a biografia do perfil do membro na comunidade para {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "Alterou o limite de histórico de mensagens de {oldDate} para {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "Alterou o nome de {oldName} para {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "Alterou o apelido de {oldNick} para {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Alterou a cor do cargo de {oldColor} para {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Alterou o ícone do cargo de {oldEmoji} para {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "Alterou o canal do sistema de {oldChannel} para {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Alterou o tópico de {oldText} para {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "Alterou o limite de usuários de {oldCount} para {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "Alterou a URL personalizada de {oldCode} para {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Alterou o nível de verificação de {oldLevel} para {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "Alterou a região de voz de {oldRegion} para {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "canal" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Canal ou categoria" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Permissão específica do canal adicionada" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Permissão específica do canal removida" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Permissão específica do canal atualizada" @@ -7815,7 +8805,7 @@ msgstr "Comunidades com mais de 250 pessoas são forçadas para a configuração #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Excluir suas mensagens nesta conversa?" msgid "Deleted" msgstr "Excluído" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "Excluiu {duration} do histórico de mensagens recentes do membro." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Texto excluído" msgid "Deleted your messages." msgstr "Suas mensagens foram excluídas." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "categoria-excluída" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "canal-excluído" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "cargo-excluído" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "Negou {0} e removeu a negação para {1}." msgid "Denied {0}." msgstr "{0} negado." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "Negou {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Conteúdo incorporado reativado" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Clonagem de emojis ativada" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Emoji criado" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Emoji excluído" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Espaços de emoji cheios" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Emoji atualizado" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Filtrar por data de criação da conta" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Filtrar por ação" @@ -14572,18 +15587,22 @@ msgstr "Filtrar por cargos" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Filtrar por usuário" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Filtrar todos" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Filtrar membros sem cargos" @@ -15890,6 +16909,11 @@ msgstr "Concedeu {0} e revogou {1}." msgid "Granted {0}." msgstr "Concedeu {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "Concedeu {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Olá, {username}! Esperamos que você aproveite o tempo por aqui." msgid "Hey, {username}, welcome aboard!" msgstr "Olá, {username}! Boas-vindas!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Ocultou as mensagens de entrada no canal do sistema." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Ocultou a coroa do proprietário da comunidade." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Ocultar sua câmera?" msgid "Hide your own screen share?" msgstr "Ocultar sua própria tela compartilhada?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Alta" @@ -17688,7 +18724,7 @@ msgstr "Convidar" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "O código do convite é {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Convite criado" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Convite excluído" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Convite indisponível" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Convite atualizado" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (esq.)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Alinhado à esquerda" @@ -18745,6 +19783,11 @@ msgstr "Permitir que leitores de tela anunciem novas mensagens assim que elas ch msgid "Let the community self-moderate" msgstr "Deixar a comunidade se moderar" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Permitiu que o membro ouvisse os outros nesta comunidade novamente." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Permitir que o CSS personalizado revele regiões transparentes da janela após reiniciar o aplicativo para computador." @@ -18815,6 +19858,16 @@ msgstr "Curtido." msgid "Likes: <0>{countLabel}" msgstr "Curtidas: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "Limitou as menções a este cargo aos membros com permissão para mencionar qualquer cargo." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Limitou o canal a {count, plural, one {# usuário} other {# usuários}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Luisiana" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Baixa" @@ -19204,6 +20259,11 @@ msgstr "Dispositivo de áudio padrão do macOS" msgid "macOS permissions" msgstr "Permissões do macOS" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Fez o canal herdar a configuração de conteúdo adulto." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Marcou o emoji como animado." msgid "Marked emoji as static." msgstr "Emoji marcado como estático." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Marcou o canal como contendo conteúdo adulto." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Marcou o canal como não contendo conteúdo adulto." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "Marcou o membro como permanente." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Parar reprodução" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Médio" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Tamanho médio (padrão)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Membro" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Ações para o membro {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Membro banido" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Membro desconectado" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Membro expulso" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "As listas de membros estão temporariamente indisponíveis nesta comunidade" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Membro movido" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Membro não encontrado" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Cargos do membro atualizados" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Membro desde" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Membro desbanido" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Membro atualizado" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Membros são removidos quando offline, a menos que recebam um cargo." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Membros removidos" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "Membros sem a permissão {readMessageHistoryPermissionLabel} podem ver as mensagens enviadas após esta data." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Membros, selecionados" @@ -20077,8 +21149,10 @@ msgstr "As menções a você aparecem aqui por {recentMentionsRetentionDays} dia msgid "Mentions of you show up here for {retentionDays} days." msgstr "As menções a você aparecem aqui por {retentionDays} dias." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Somente menções" @@ -20104,7 +21178,7 @@ msgstr "mensagem" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Mensagem" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Depurar mensagem" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Mensagem excluída" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Lista de mensagens para {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Mensagem fixada" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Hora da mensagem" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Mensagem desafixada" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Mensagens e mídia" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Mensagens excluídas" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Moderação" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "As ações de moderação e as mudanças na comunidade aparecerão aqui." @@ -20915,16 +21989,51 @@ msgstr "Mover para" msgid "Move to…" msgstr "Mover para…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Movido de {oldChannel} para {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Moveu o canal da categoria {oldCategory} para a categoria {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Moveu o canal para a categoria {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Moveu o canal para a categoria {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "Moveu o cargo para baixo na lista de membros." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "Moveu o cargo para baixo na lista de cargos." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Moveu o cargo para a posição {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "Moveu o cargo para cima na lista de membros." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "Moveu o cargo para cima na lista de cargos." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Nova mensagem" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Novas mensagens" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "Nenhum arquivo local referenciado" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Nenhum registro ainda" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "Nenhum motivo informado" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "Nenhum motivo foi informado." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Não converter" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Não converter" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "Construtor de URL OAuth2" msgid "Objects" msgstr "Objetos" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Objetos" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Desativado" @@ -23523,6 +24636,21 @@ msgstr "Não foi possível carregar a mensagem original" msgid "Original message was deleted" msgstr "A mensagem original foi excluída" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Banido originalmente por {user} em {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Banido originalmente por {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Banido originalmente em {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Pausado por movimento reduzido. Ative para manter os emojis animados." msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "Pausado por movimento reduzido. Ative para manter os GIFs em reprodução." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Pausou os convites." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Excluir permanentemente sua conta e todos os dados associados. Esta aç msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Remova permanentemente as mensagens que você enviou em conversas por mensagem direta, individuais ou em grupo, e em comunidades. O processo ocorre em segundo plano, e você receberá uma mensagem direta quando ele terminar." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Permissão personalizada adicionada" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Permissão personalizada removida" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Permissão personalizada atualizada" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Pronto para fazer um upgrade?" msgid "Real-time" msgstr "Tempo real" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Motivo" @@ -26291,26 +27440,166 @@ msgstr "Cargo {oldLabel} removido." msgid "Removed roles." msgstr "Cargos removidos." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "Removeu o canal AFK." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Removeu o avatar." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Removeu o canal da categoria." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Removeu o canal da categoria {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Removeu o plano de fundo do conteúdo incorporado no chat." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "Removeu o banner da comunidade." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Removeu o ícone da comunidade." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "Removeu o texto de aviso de conteúdo." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Removeu o aviso de conteúdo." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Removeu o ícone de cargo personalizado." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Removeu o texto de aviso personalizado." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Removeu a descrição {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Removeu o plano de fundo do convite." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Removeu o link." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Removeu a cor de destaque do perfil do membro na comunidade." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Removeu o avatar do perfil do membro na comunidade." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Removeu o banner do perfil do membro na comunidade." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Removeu a biografia do perfil do membro na comunidade." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "Removeu os pronomes do perfil do membro na comunidade." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Removeu o limite de histórico de mensagens." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "Removeu o apelido {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "Removeu a permissão personalizada para {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "Removeu o cargo {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Removeu a cor do cargo." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Removeu o ícone do cargo." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Removeu o canal de regras." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "O canal do sistema foi removido." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "Removeu a suspensão temporária." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "Removeu o tópico {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Removeu o emoji Unicode." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Removeu o limite de usuários." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "Removeu a URL personalizada {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Suspensão temporária de {targetUserTag} removida" @@ -26381,6 +27670,11 @@ msgstr "Renomeou a figurinha para {0}." msgid "Renamed the channel to {0}." msgstr "Renomeou o canal para {0}." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Renomeou a comunidade de {oldName} para {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Exigir autenticação de dois fatores para que moderadores possam banir, msgid "Required" msgstr "Obrigatório" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "Exigiu 2FA para ações de moderação." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Redefinir espaçamento" msgid "Reset the connection limit." msgstr "Redefiniu o limite de conexão." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "Redefiniu a posição da lista de membros para o cargo." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "As menções a este cargo foram restritas aos membros com a permissão n msgid "Resubscribe" msgstr "Assinar novamente" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Retomou os convites." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Voltar para o login" @@ -27330,6 +28639,11 @@ msgstr "Revogar este convite? Não poderá ser desfeito." msgid "Revoked {0}." msgstr "{0} revogado." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "Revogou {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (dir.)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Alinhado à direita" @@ -27408,7 +28724,7 @@ msgstr "Toque" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Cargo" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Cor do cargo" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Cargo criado" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Cargo criado com sucesso" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Cargo excluído" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "O nome do cargo é obrigatório" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Cargo atualizado" @@ -28930,11 +30246,21 @@ msgstr "Sessões" msgid "Set {fieldNode} to {0}." msgstr "Definiu {fieldNode} como {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Definiu um ícone de cargo personalizado." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Definir um status personalizado" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Definiu uma posição na lista de membros para o cargo." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "A cor do cargo foi definida como <0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "Definiu o modo lento para {0} {seconds, plural, =1 {segundo} other {segundos}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Definiu o modo lento para {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Definir status" msgid "Set the AFK channel to {0}." msgstr "Definiu o canal de ausência como {0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "Definiu o canal AFK para {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "Definiu o tempo limite de ausência em segundos: {0}." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "Definiu a qualidade do áudio para {kbps} kbps." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "Definiu o tipo de canal como {0}." msgid "Set the connection limit to {0}." msgstr "Definiu o limite de conexões como {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "Definiu o aviso de conteúdo como {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "Definiu o aviso personalizado como {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "Definiu a descrição como {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "Definiu o alinhamento do fundo do convite como {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "Definiu o link para {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "Definiu a cor de destaque do perfil do membro na comunidade para {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "Definiu a biografia do perfil do membro na comunidade para {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "Definiu os pronomes do perfil do membro na comunidade para {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "Definiu o limite do histórico de mensagens para {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "Definiu o apelido para {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Defina o nome público do produto, a cor do tema e os ativos de imagem que os clientes exibem." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "Definiu a cor do cargo para {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "Definiu o ícone do cargo para {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "Definiu o canal de regras como {0}." msgid "Set the system channel to {0}." msgstr "Definiu o canal do sistema como {0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "Definiu o canal do sistema para {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "Definiu o tópico como {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "Definiu o limite de usuários como {0}." msgid "Set the vanity URL to {0}." msgstr "Definiu o URL personalizado para {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "Definiu a URL personalizada para {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "Definiu a região de voz para {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "Definiu a região de voz como automática." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Mostrar seu banner de perfil global nesta comunidade" msgid "Show your Visionary as a regular subscription instead" msgstr "Mostrar sua assinatura Visionary como uma assinatura comum" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Mostrou os membros com este cargo em uma seção própria na lista de membros." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Algo deu errado ao emitir seu reembolso. Entre em contato com o suporte se isso continuar acontecendo." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Ocorreu um erro ao carregar o registro de atividades." @@ -31105,6 +32531,11 @@ msgstr "Iniciar chamada de voz" msgid "Start with computer" msgstr "Iniciar com o computador" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "Começou a exibir os membros com este cargo separadamente." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "figurinha" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "Não foi possível compactar a figurinha o suficiente" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Figurinha criada" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Figurinha excluída" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Não há mais espaço para figurinhas" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Figurinha atualizada" @@ -31412,6 +32843,46 @@ msgstr "Parar de assistir à transmissão" msgid "Stop." msgstr "Parar." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Parou de permitir nomes de canais de texto flexíveis." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Parou de permitir que outros clonassem os emojis desta comunidade." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Parou de permitir que outros clonassem as figurinhas desta comunidade." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Parou de exibir membros com este cargo separadamente." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Parou de ocultar mensagens de entrada no canal do sistema." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Parou de ocultar a coroa de proprietário da comunidade." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Parou de exigir autenticação de dois fatores (2FA) para ações de moderação." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Impediu que o membro ouvisse os outros nesta comunidade." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Sincronizar com a categoria" msgid "Syntax highlighting" msgstr "Realce de sintaxe" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "Sistema" @@ -32449,6 +33922,16 @@ msgstr "O app travou. Verificando se há atualizações que possam resolver o pr msgid "The app should now be signed in to your account." msgstr "O aplicativo deve estar conectado à sua conta agora." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "O banimento já havia expirado em {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "O banimento estava programado para expirar em {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "O bot foi adicionado a <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "A atualização do aplicativo para computador foi baixada. Reinicie o {p msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "O arquivo baixado é salvo no seu computador. Instale-o com seu gerenciador de pacotes normal." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "O emoji foi enviado por {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "O arquivo contém o token de verificação que buscaremos em <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "O arquivo que você está tentando enviar excede o limite máximo de {ma msgid "The following people can't be added to this group DM:" msgstr "As pessoas a seguir não podem ser adicionadas a esta conversa em grupo:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "O convite foi criado por {user} em {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "O convite foi criado por {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "O convite foi criado em {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "O convite nunca foi usado." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "O convite estava programado para expirar em {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "O convite foi configurado para permitir usos ilimitados." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "O convite foi definido para expirar após {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "O convite foi configurado para conceder participação temporária." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "O convite foi configurado para nunca expirar." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "O idioma que a maioria da sua comunidade fala. Usado para filtrar os resultados em Descobrir." @@ -32518,6 +34051,11 @@ msgstr "O link ainda pode funcionar. Tente novamente em alguns instantes." msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "A verificação de conteúdo adulto foi cancelada. Você pode fechar esta aba e tentar novamente pelo aplicativo." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "O membro não é mais temporário." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "O novo preço já está agendado para {effectiveDate}." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "O novo canal de voz vai reutilizar as permissões, limite de usuários e taxa de bits de <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "A substituição permitia {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "A substituição negava {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "A página que você está procurando não existe ou foi movida." @@ -32565,6 +34113,11 @@ msgstr "O redirect_uri fornecido não está registrado para este aplicativo." msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "O redirect_uri fornecido precisa usar HTTP ou HTTPS." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "O cargo concedeu {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "A figurinha foi enviada como animada." msgid "The sticker was uploaded as static." msgstr "A figurinha foi enviada como estática." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "A figurinha foi enviada por {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "O sistema deu a {target} o cargo {role}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "O sistema removeu o cargo {role} de {target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "O nome de usuário <0>{fluxerTag} já está em uso. Se você continu msgid "The verification code is invalid or expired." msgstr "O código de verificação é inválido ou expirou." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "O webhook foi criado por {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Este cartão não corresponde ao seu país de cobrança, por isso não pode ser usado para esta moeda regional. Use um cartão local ou volte ao {productName} e escolha outra forma de pagamento." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "Esta categoria já contém o número máximo de {maxChannelsPerCategory} canais." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Acompanhe as ações dos moderadores na comunidade." @@ -33953,6 +35526,11 @@ msgstr "Transferir a propriedade do grupo para {userName}?" msgid "Transfer ownership" msgstr "Transferir a propriedade" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Transferiu a propriedade da comunidade para {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Ativar privacidade de transmissão" msgid "Turn text smileys into emoji" msgstr "Ativar a conversão de emoticons em emojis" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Desativou conteúdo adulto." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Desativou o modo lento." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "Desativou o aviso de conteúdo." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Desativou o banner desanexado." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Desativou o microfone do membro nesta comunidade." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Ativou conteúdo adulto." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "Ativou o aviso de conteúdo." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Ativou o banner desanexado." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "Reativou o microfone do membro nesta comunidade." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Desativar permissões pode impedir que o app funcione corretamente." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "Ucraniano" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Não foi possível carregar os registros de atividade" @@ -34859,6 +36482,7 @@ msgstr "Alvo desconhecido" msgid "unknown user" msgstr "usuário desconhecido" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "usuário desconhecido" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Usado apenas nesta comunidade." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Vermont" msgid "Version" msgstr "Versão" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Muito alta" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Webcam" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Webhook criado" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhook excluído" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Nome do webhook" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhook atualizado" diff --git a/fluxer_app/src/features/i18n/locales/ro/messages.po b/fluxer_app/src/features/i18n/locales/ro/messages.po index a284f0b24..c166603b1 100644 --- a/fluxer_app/src/features/i18n/locales/ro/messages.po +++ b/fluxer_app/src/features/i18n/locales/ro/messages.po @@ -56,6 +56,31 @@ msgstr "{a} scrie..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} și {c} scriu..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} a adăugat o suprascriere de permisiuni pentru {user} în {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} a adăugat o suprascriere de permisiuni pentru @everyone în {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} a adăugat o suprascriere de permisiuni pentru rolul {role} în {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} a adăugat un sticker." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} a adăugat un emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} a adăugat permisiuni de canal pentru {targetEntity} în {channelNode}." @@ -64,35 +89,200 @@ msgstr "{actor} a adăugat permisiuni de canal pentru {targetEntity} în {channe msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} a adăugat permisiuni de canal pentru {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} a adăugat botul {target} ca membru temporar." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} a adăugat botul {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} a adăugat botul {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} a adăugat emoji-ul {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} a adăugat emoji-ul {namedTarget}." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} a adăugat stickerul {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} a adăugat stickerul {namedTarget}." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} a banat {target} pentru {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} a banat {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} a aplicat o interdicție pentru {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} a modificat blocarea lui {target} pentru trimiterea de mesaje, reacționarea și conectarea la canalele vocale, astfel încât să se încheie la {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} a schimbat pseudonimul lui {target} din {oldNick} în {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} a modificat suprascrierile permisiunilor pentru categoria {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} a modificat suprascrierile permisiunilor pentru canalul {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} a modificat suprascrierile permisiunilor pentru canalul de tip link {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} a modificat suprascrierile permisiunilor pentru canalul text {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} a modificat suprascrierile permisiunilor pentru canalul vocal {channel}." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} a schimbat URL-ul personalizat de la {oldCode} la {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} și-a schimbat avatarul profilului comunității." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} și-a schimbat bannerul profilului comunității." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} și-a schimbat biografia profilului comunității în {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} și-a schimbat pseudonimul din {oldNick} în {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} a creat un webhook." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} a creat categoria {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} a creat canalul {channel} în {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} a creat canalul {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} a creat canalul {namedTarget}." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} a creat invitația {code} pentru {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} a creat invitația {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} a creat invitația {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} a creat canalul de tip link {channel} în {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} a creat canalul de tip link {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} a creat rolul {namedTarget}." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} a creat rolul {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} a creat canalul text {channel} în {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} a creat canalul text {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} a creat canalul vocal {channel} în {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} a creat canalul vocal {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} a creat webhook-ul {name} în {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} a creat webhook-ul {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} a creat webhook-ul {namedTarget}." @@ -103,49 +293,209 @@ msgstr "{actor} a creat webhook-ul {namedTarget}." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} a șters {0} {bulkCount, plural, one {mesaj} few {mesaje} other {de mesaje}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} a șters {count, plural, one {# mesaj} few {# mesaje} other {# de mesaje}} în {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} a șters {count, plural, one {# mesaj} few {# mesaje} other {# de mesaje}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} a șters un mesaj în {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} a șters un mesaj." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} a șters un mesaj{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} a șters un sticker." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} a șters un webhook." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} a șters un emoji." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} a șters mai multe mesaje{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} a șters câteva mesaje în {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} a șters câteva mesaje." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} a șters categoria {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} a șters canalul {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} a șters canalul {namedTarget}." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} a șters emoji-ul {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} a șters emoji-ul {namedTarget}." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} a șters invitația {code} pentru {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} a șters invitația {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} a șters invitația {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} a șters canalul de tip link {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} a șters rolul {namedTarget}." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} a șters rolul {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} a șters stickerul {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} a șters stickerul {namedTarget}." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} a șters canalul text {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} a șters canalul vocal {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} a șters webhook-ul {name} din {channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} a șters webhook-ul {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} a șters webhook-ul {namedTarget}." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} a deconectat {target} din {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} a deconectat {target} de la voce." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} a deconectat pe {targetMember} de la canalul vocal." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} s-a deconectat din {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} s-a deconectat de la voce." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} i-a dat rolul {role} lui {target}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} a eliminat {target} din comunitate." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} a eliminat pe {targetMember}." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} i-a permis lui {target} să îi audă din nou pe ceilalți membri din această comunitate." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} a făcut o modificare pe care această versiune a aplicației nu o poate afișa." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} a mutat {target} din {oldChannel} în {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} a mutat {target} în {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} a mutat {target} într-un alt canal vocal." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} a mutat pe {targetMember} în {channelNode}." @@ -154,16 +504,68 @@ msgstr "{actor} a mutat pe {targetMember} în {channelNode}." msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} a mutat pe {targetMember} într-un alt canal vocal." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} s-a mutat din {oldChannel} în {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} a mutat rolul {role} mai jos în lista de membri." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} a mutat rolul {role} mai jos în lista de roluri." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} a mutat rolul {role} mai sus în lista membrilor." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} a mutat rolul {role} mai sus în lista de roluri." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} s-a mutat în {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} s-a mutat într-un alt canal vocal." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} a întrerupt invitațiile." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} a efectuat o acțiune de audit asupra {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} a fixat un mesaj în {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} a fixat un mesaj." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} a fixat un mesaj{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} a eliminat membrii inactivi." @@ -179,19 +581,249 @@ msgstr "{actor} a eliminat permisiunile de canal pentru {targetEntity} în {chan msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} a eliminat permisiunile de canal pentru {targetEntity}." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} a eliminat pseudonimul {nick} de la {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} a eliminat suprascrierea permisiunilor pentru {user} din {channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} a eliminat suprascrierea permisiunilor pentru @everyone din {channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} a eliminat suprascrierea permisiunilor pentru rolul {role} din {channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} a eliminat rolul {role} de la {target}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} a eliminat timeoutul pentru {target}." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} a eliminat URL-ul personalizat {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} și-a eliminat culoarea de accent a profilului comunității." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} și-a eliminat avatarul din profilul comunității." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} și-a eliminat bannerul profilului comunității." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} și-a eliminat biografia profilului comunității." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} și-a eliminat pronumele din profilul comunității." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} și-a eliminat pseudonimul {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} a redenumit categoria {oldName} în {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} a redenumit canalul {oldName} în {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} a redenumit comunitatea din {oldName} în {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} a redenumit emoji-ul {oldEmoji} în {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} a redenumit canalul de tip link {oldName} în {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} a redenumit rolul {oldName} în {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} a redenumit stickerul {oldName} în {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} a redenumit canalul text {oldName} în {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} a redenumit canalul vocal {oldName} în {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} a redenumit webhook-ul {oldName} în {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} a resetat poziția din lista de membri pentru rolul {role}." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} a reluat invitațiile." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} a setat o poziție în lista de membri pentru rolul {role}." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} a setat pseudonimul lui {target} la {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} a setat URL-ul personalizat la {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} și-a setat culoarea de accent a profilului comunității la {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} și-a setat avatarul profilului comunității." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} și-a setat bannerul profilului comunității." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} și-a setat biografia profilului comunității la {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} și-a setat pronumele în profilul comunității la {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} și-a setat pseudonimul la {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} a făcut ca {target} să nu îi mai audă pe ceilalți în această comunitate." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} a aplicat timeout pentru {target} până la {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} a transferat proprietatea comunității către {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} a reactivat microfonul lui {target} în această comunitate." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} a dezactivat microfonul lui {target} în această comunitate." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} a revocat interdicția pentru {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} a anulat interdicția pentru {targetMember}." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} a desfixat un mesaj în {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} a desfixat un mesaj." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} a anulat fixarea unui mesaj{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} a actualizat {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} a actualizat {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} a actualizat un sticker." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} a actualizat un webhook." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} a actualizat un emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} a actualizat permisiunile de canal pentru {targetEntity} în {channelNode}." @@ -204,35 +836,112 @@ msgstr "{actor} a actualizat permisiunile de canal pentru {targetEntity}." msgid "{actor} updated roles for {targetMember}." msgstr "{actor} a actualizat rolurile pentru {targetMember}." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} a actualizat categoria {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} a actualizat canalul {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} a actualizat canalul {namedTarget}." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} a actualizat setările comunității." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} a actualizat emoji-ul {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} a actualizat emoji-ul {namedTarget}." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} a actualizat invitația {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} a actualizat invitația {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} a actualizat canalul de tip link {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} a actualizat suprascrierea permisiunilor pentru {user} în {channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} a actualizat suprascrierea permisiunilor pentru @everyone în {channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} a actualizat suprascrierea permisiunilor pentru rolul {role} în {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} a actualizat rolul {namedTarget}." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} a actualizat rolul {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} a actualizat rolurile lui {target}." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} a actualizat stickerul {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} a actualizat stickerul {namedTarget}." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} a actualizat canalul text {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} a actualizat canalul vocal {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} a actualizat webhook-ul {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} a actualizat webhook-ul {namedTarget}." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} și-a actualizat profilul în comunitate." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# element} few {# elemente} other {# de elemente}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# membru} few {# membri} other {# de membri}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# permisiune în plus} few {# permisiuni în plus} other {# de permisiuni în plus}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# comunitate comună} few {# comunități comune} other {# de comunități comune}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {Afișează # dispozitiv} few {Afișează # dispozit msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Deconectează # dispozitiv} few {Deconectează # dispozitive} other {Deconectează # de dispozitive}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {Invitația a fost limitată la # utilizare.} few {Invitația a fost limitată la # utilizări.} other {Invitația a fost limitată la # de utilizări.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {Invitația a fost folosită # dată.} few {Invitația a fost folosită de # ori.} other {Invitația a fost folosită de # de ori.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "Canalele din {guildName}" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Activitate" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Jurnal de activitate" @@ -2713,10 +3437,60 @@ msgstr "S-a adăugat {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "{length, plural, one {S-a adăugat # referință de fișier local} few {S-au adăugat # referințe de fișiere locale} other {S-au adăugat # de referințe de fișiere locale}}." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "A adăugat un fundal pentru încorporarea din chat." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "A adăugat un banner pentru comunitate." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "A adăugat o pictogramă pentru comunitate." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "A adăugat un avertisment de conținut cu textul {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "S-a adăugat un avertisment de conținut." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "A adăugat un avatar." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "A adăugat un fundal pentru invitații." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Roluri adăugate." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "A adăugat avatarul membrului din profilul comunității." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "A adăugat bannerul membrului din profilul comunității." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "A adăugat rolul {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Comenzile de aliniere sunt disponibile doar pe ecrane mai late" #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Toate <0/>, pentru totdeauna. Fără facturare, fără reînnoiri." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Toate acțiunile" @@ -3001,10 +3775,12 @@ msgstr "Toate limbile" msgid "All members" msgstr "Toți membrii" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "Oricând" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Toți utilizatorii" @@ -3197,6 +3973,16 @@ msgstr "S-a permis {0} și s-a eliminat permisiunea pentru {1}." msgid "Allowed {0}." msgstr "S-a permis {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "Permise: {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "A permis tuturor membrilor să menționeze acest rol." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Apelanți permiși" @@ -3205,15 +3991,35 @@ msgstr "Apelanți permiși" msgid "Allowed everyone to mention this role." msgstr "Tuturor li s-a permis să menționeze acest rol." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Permise nume flexibile pentru canale text." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Invitații permise" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "A permis altora să cloneze emoji-urile acestei comunități." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "A permis altora să cloneze stickerele acestei comunități." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Redirecționări permise" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "A permis până la {count, plural, one {# conexiune} few {# conexiuni} other {# de conexiuni}} pe membru." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Banează membri" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Banează membri din comunitate, cu opțiunea de a le șterge mesajele recente." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Motivul interdicției" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Blochează utilizatorul" msgid "Blocked" msgstr "Blocați" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "A blocat posibilitatea membrului de a trimite mesaje, de a reacționa și de a se conecta la canalele vocale până la {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Bot" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Bot adăugat" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Categorie ștearsă" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Categorie plină" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Centru" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Centrat" @@ -6298,11 +7116,183 @@ msgstr "Schimbă-ți numele de utilizator" msgid "Changed nickname from {0} to {1}." msgstr "A schimbat pseudonimul din {0} în {1}." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "A modificat modul lent de la {oldDuration} la {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "A modificat canalul AFK din {oldChannel} în {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "A modificat timpul de inactivitate de la {oldDuration} la {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "A modificat calitatea audio de la {oldKbps} kbps la {newKbps} kbps." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "A modificat avatarul." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Bitrate-ul a fost schimbat la {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "A modificat blocarea trimiterii de mesaje, a reacționării și a conectării la canalele vocale, astfel încât să se încheie la {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "A modificat fundalul încorporării din chat." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "A modificat bannerul comunității." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "A modificat pictograma comunității." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "A fost modificat numărul de conexiuni per membru de la {oldCount} la {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "A modificat textul avertismentului de conținut de la {oldText} la {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "A modificat pictograma personalizată a rolului." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "A modificat textul avertismentului personalizat de la {oldText} la {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "A modificat setarea implicită de notificare de la {oldSetting} la {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "A modificat descrierea din {oldText} în {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "A modificat filtrul de conținut explicit de la {oldFilter} la {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Ajustată alinierea imaginii de fundal a invitației de la {oldAlignment} la {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "A modificat fundalul invitației." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "A modificat linkul de la {oldUrl} la {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "A modificat avatarul membrului din profilul comunității." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "A modificat bannerul membrului din profilul comunității." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "A modificat biografia membrului din profilul comunității la {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "A modificat pragul istoricului mesajelor de la {oldDate} la {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "A modificat numele din {oldName} în {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "A modificat pseudonimul din {oldNick} în {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "A modificat culoarea rolului din {oldColor} în {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "A modificat pictograma rolului din {oldEmoji} în {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "A modificat canalul de sistem de la {oldChannel} la {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "A modificat subiectul de la {oldText} la {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "A modificat limita de utilizatori de la {oldCount} la {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "A modificat URL-ul personalizat de la {oldCode} la {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "A modificat nivelul de verificare de la {oldLevel} la {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "A modificat regiunea vocală de la {oldRegion} la {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "canal" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Canal sau categorie" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Suprascriere canal adăugată" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Suprascriere canal eliminată" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Suprascriere canal actualizată" @@ -7815,7 +8805,7 @@ msgstr "Comunitățile cu peste 250 de persoane sunt forțate să utilizeze seta #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Ștergi mesajele tale din această conversație?" msgid "Deleted" msgstr "Șters" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "A șters {duration} din istoricul recent de mesaje al membrului." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Text șters" msgid "Deleted your messages." msgstr "Mesajele tale au fost șterse." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "categorie-ștearsă" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "canal-șters" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "rol-șters" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "S-a refuzat {0} și s-a eliminat refuzul pentru {1}." msgid "Denied {0}." msgstr "S-a refuzat {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "Refuzat {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Încorporări reafișate" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Clonarea emoji-urilor activată" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Emoji creat" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Emoji șters" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Sloturile pentru emoji sunt pline" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Emoji actualizat" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Filtrează după data creării contului" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Filtrează după acțiune" @@ -14572,18 +15587,22 @@ msgstr "Filtrează după roluri" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Filtrează după utilizator" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Filtrează pe toată lumea" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Filtrează membrii fără roluri" @@ -15890,6 +16909,11 @@ msgstr "S-au acordat {0} și s-au revocat {1}." msgid "Granted {0}." msgstr "S-a acordat {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "Acordat {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Salut, {username}! Sperăm să te simți bine aici." msgid "Hey, {username}, welcome aboard!" msgstr "Salut, {username}, bine ai venit!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "A ascuns mesajele de alăturare în canalul de sistem." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "A ascuns coroana proprietarului comunității." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Ascunzi propria cameră?" msgid "Hide your own screen share?" msgstr "Ascunzi propria partajare a ecranului?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Ridicat" @@ -17688,7 +18724,7 @@ msgstr "Invită" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "Codul de invitație este {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Invitație creată" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Invitație ștearsă" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Invitație indisponibilă" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Invitație actualizată" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (stânga)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Aliniat la stânga" @@ -18745,6 +19783,11 @@ msgstr "Permite cititoarelor de ecran să anunțe mesajele noi pe măsură ce so msgid "Let the community self-moderate" msgstr "Permite comunității să se automodereze" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "A permis membrului să îi audă din nou pe ceilalți în această comunitate." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Permite CSS-ului personalizat să afișeze zone transparente ale ferestrei după repornirea aplicației desktop." @@ -18815,6 +19858,16 @@ msgstr "Apreciat." msgid "Likes: <0>{countLabel}" msgstr "Aprecieri: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "A limitat menționarea acestui rol la membrii cu permisiunea de a menționa orice rol." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "A limitat canalul la {count, plural, one {# utilizator} few {# utilizatori} other {# de utilizatori}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Louisiana" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Scăzut" @@ -19204,6 +20259,11 @@ msgstr "Implicit macOS" msgid "macOS permissions" msgstr "Permisiuni macOS" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "A setat canalul să moștenească setarea pentru conținut matur." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "A marcat emojiul ca animat." msgid "Marked emoji as static." msgstr "A marcat emojiul ca static." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "A marcat canalul ca având conținut pentru adulți." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "A marcat canalul ca neavând conținut pentru adulți." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "A marcat membrul ca permanent." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Oprește redarea" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Mediu" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Mărime medie (implicit)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Membru" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Acțiuni membru pentru {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Membru banat" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Membru deconectat" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Membru eliminat" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Listele de membri sunt temporar indisponibile în această comunitate" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Membru mutat" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Membrul nu a fost găsit" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Rolurile membrilor au fost actualizate" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Membru din" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Interdicție anulată pentru membru" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Membru actualizat" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Membrii sunt eliminați când sunt offline, dacă nu li se atribuie un rol." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Membri inactivi eliminați" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "Membrii fără permisiunea {readMessageHistoryPermissionLabel} pot vedea mesajele trimise după această dată." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Membri, selectați" @@ -20077,8 +21149,10 @@ msgstr "Mențiunile despre tine apar aici timp de {recentMentionsRetentionDays} msgid "Mentions of you show up here for {retentionDays} days." msgstr "Mențiunile despre tine apar aici timp de {retentionDays} zile." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Doar mențiuni" @@ -20104,7 +21178,7 @@ msgstr "mesaj" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Mesaj" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Depanare mesaj" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Mesaj șters" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Listă de mesaje pentru {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Mesaj fixat" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Ora mesajului" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Fixare mesaj anulată" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Mesaje și media" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Mesaje șterse" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Moderare" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Acțiunile de moderare și modificările comunității vor apărea aici." @@ -20915,16 +21989,51 @@ msgstr "Mută în" msgid "Move to…" msgstr "Mută în…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Mutat din {oldChannel} în {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "A mutat canalul din categoria {oldCategory} în categoria {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "A mutat canalul în categoria {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Canalul a fost mutat în categoria {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "A mutat rolul mai jos în lista de membri." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "A mutat rolul mai jos în lista de roluri." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Rolul a fost mutat pe poziția {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "A mutat rolul mai sus în lista de membri." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "A mutat rolul mai sus în lista de roluri." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Mesaj nou" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Mesaje noi" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "Nicio referință la fișiere locale" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Încă nu există jurnale" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "Nu a fost furnizat niciun motiv" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "Nu a fost furnizat niciun motiv." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Fără conversie" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Fără conversie" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "Constructor de URL-uri OAuth2" msgid "Objects" msgstr "Obiecte" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Obiecte" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Dezactivat" @@ -23523,6 +24636,21 @@ msgstr "Mesajul original nu a putut fi încărcat" msgid "Original message was deleted" msgstr "Mesajul original a fost șters" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Interzis inițial de {user} pe {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Interzis inițial de către {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Interzis inițial pe {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Întrerupt din cauza mișcării reduse. Activează pentru a menține emo msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "Întrerupt din cauza mișcării reduse. Activează pentru a menține GIF-urile în redare." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "A întrerupt invitațiile." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Șterge definitiv contul și toate datele asociate. Această acțiune nu msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Șterge definitiv mesajele pe care le-ai trimis în DM-uri, DM-uri de grup și comunități. Procesul rulează în fundal și vei primi un DM când se finalizează." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Suprascriere de permisiuni adăugată" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Suprascriere de permisiuni eliminată" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Suprascriere de permisiuni actualizată" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Ești gata să faci upgrade?" msgid "Real-time" msgstr "Timp real" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Motiv" @@ -26291,26 +27440,166 @@ msgstr "Rolul {oldLabel} a fost eliminat." msgid "Removed roles." msgstr "Roluri eliminate." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "A eliminat canalul AFK." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "A eliminat avatarul." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "A eliminat canalul din categoria sa." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "A eliminat canalul din categoria {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "A fost eliminat fundalul încorporării de chat." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "A eliminat bannerul comunității." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "A eliminat pictograma comunității." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "A fost eliminat textul avertismentului de conținut." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Avertismentul de conținut a fost eliminat." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "A eliminat pictograma personalizată a rolului." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "A fost eliminat textul personalizat de avertizare." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "A eliminat descrierea {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "A fost eliminat fundalul invitației." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "A eliminat linkul." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "A eliminat culoarea de accent a membrului din profilul comunității." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "A eliminat avatarul membrului din profilul comunității." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "A eliminat bannerul membrului din profilul comunității." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "A eliminat biografia membrului din profilul comunității." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "A eliminat pronumele membrului din profilul comunității." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "A eliminat pragul istoricului mesajelor." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "A eliminat pseudonimul {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "A eliminat suprascrierea pentru {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "A eliminat rolul {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "A eliminat culoarea rolului." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "A eliminat pictograma rolului." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "A eliminat canalul de reguli." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "A eliminat canalul de sistem." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "A eliminat timeoutul." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "A eliminat subiectul {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "A eliminat emoji-ul Unicode." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Limita de utilizatori a fost eliminată." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "A eliminat URL-ul personalizat {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Timeout eliminat pentru {targetUserTag}" @@ -26381,6 +27670,11 @@ msgstr "A redenumit stickerul în {0}." msgid "Renamed the channel to {0}." msgstr "A redenumit canalul în {0}." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Comunitatea a fost redenumită din {oldName} în {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Solicită autentificarea în doi pași pentru moderatori înainte ca ace msgid "Required" msgstr "Obligatoriu" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "A solicitat 2FA pentru acțiunile de moderare." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Resetare spațiere" msgid "Reset the connection limit." msgstr "Limita de conexiuni a fost resetată." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "A resetat poziția din lista de membri pentru rol." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Menționarea acestui rol a fost restricționată la membrii cu permisiun msgid "Resubscribe" msgstr "Reabonează-te" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "A reluat invitațiile." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Înapoi la autentificare" @@ -27330,6 +28639,11 @@ msgstr "Revoci această invitație? Acțiunea nu poate fi anulată." msgid "Revoked {0}." msgstr "S-a revocat {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "Revocat {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (dreapta)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Aliniat la dreapta" @@ -27408,7 +28724,7 @@ msgstr "Ton de apel" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Rol" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Culoarea rolului" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Rol creat" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Rol creat cu succes" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Rol șters" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "Numele rolului este obligatoriu" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Rol actualizat" @@ -28930,11 +30246,21 @@ msgstr "Sesiuni" msgid "Set {fieldNode} to {0}." msgstr "A setat {fieldNode} la {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "A setat o pictogramă personalizată pentru rol." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Setează o stare personalizată" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "A setat o poziție în lista de membri pentru rol." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "A setat culoarea rolului la <0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "A setat modul lent la {0} {seconds, plural, one {secundă} few {secunde} other {de secunde}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "A setat modul lent la {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Setează starea" msgid "Set the AFK channel to {0}." msgstr "A setat canalul AFK la {0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "A setat canalul AFK la {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "A setat timpul de inactivitate la {0} secunde." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "Calitatea audio a fost setată la {kbps} kbps." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "A setat tipul canalului la {0}." msgid "Set the connection limit to {0}." msgstr "A setat limita de conexiuni la {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "A setat textul avertismentului de conținut la {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "A setat textul personalizat de avertizare la {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "Descrierea a fost setată la {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "A setat alinierea imaginii de fundal pentru invitații la {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "A setat linkul la {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "A setat culoarea de accent a membrului din profilul comunității la {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "A setat biografia membrului din profilul comunității la {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "A setat pronumele membrului din profilul comunității la {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "A setat pragul istoricului mesajelor la {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "A setat pseudonimul la {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Setează numele public al produsului, culoarea temei și resursele de imagine pe care le afișează aplicațiile client." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "A setat culoarea rolului la {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "A setat pictograma rolului la {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "A setat canalul de reguli la {0}." msgid "Set the system channel to {0}." msgstr "A setat canalul de sistem la {0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "A setat canalul de sistem la {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "A setat subiectul la {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "A setat limita de utilizatori la {0}." msgid "Set the vanity URL to {0}." msgstr "A setat adresa URL personalizată la {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "A setat URL-ul personalizat la {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "Regiunea vocală a fost setată la {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "A setat regiunea vocală la automat." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Afișează-ți bannerul de profil global în această comunitate" msgid "Show your Visionary as a regular subscription instead" msgstr "Afișează-ți abonamentul Visionary ca un abonament obișnuit" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "A afișat membrii cu acest rol într-o secțiune proprie în lista de membri." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "A apărut o eroare la emiterea rambursării. Contactează asistența dacă problema persistă." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "A apărut o eroare la încărcarea jurnalului de activitate." @@ -31105,6 +32531,11 @@ msgstr "Inițiază apel vocal" msgid "Start with computer" msgstr "Pornire cu computerul" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "A început afișarea separată a membrilor cu acest rol." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "sticker" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "Stickerul nu a putut fi comprimat suficient" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Sticker creat" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Sticker șters" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Sloturile pentru stickere sunt pline" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Sticker actualizat" @@ -31412,6 +32843,46 @@ msgstr "Oprește vizionarea streamului" msgid "Stop." msgstr "Oprește-te." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Nu s-a mai permis utilizarea numelor flexibile pentru canalele text." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Nu a mai permis altora să cloneze emoji-urile acestei comunități." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Nu a mai permis altora să cloneze stickerele acestei comunități." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Nu s-au mai afișat separat membrii cu acest rol." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Nu se mai ascund mesajele de alăturare în canalul de sistem." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Nu se mai ascunde coroana proprietarului comunității." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Nu se mai cere autentificare în doi pași pentru acțiuni de moderare." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "A făcut ca membrul să nu îi mai audă pe ceilalți în această comunitate." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Sincronizează cu categoria" msgid "Syntax highlighting" msgstr "Evidențierea sintaxei" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "Sistem" @@ -32449,6 +33922,16 @@ msgstr "Aplicația s-a închis neașteptat. Căutăm actualizări care ar putea msgid "The app should now be signed in to your account." msgstr "Acum ar trebui să fii conectat la contul tău în aplicație." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "Interdicția expirase deja pe {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "Interdicția ar fi expirat pe {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "Botul a fost adăugat la <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "Actualizarea pentru versiunea de desktop a fost descărcată. Reporneșt msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "Fișierul descărcat este salvat pe computerul tău. Instalează-l cu managerul tău de pachete obișnuit." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "Emojiul a fost încărcat de {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "Fișierul conține tokenul de verificare pe care îl vom prelua de la <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "Fișierul pe care încerci să-l încarci depășește limita maximă de msgid "The following people can't be added to this group DM:" msgstr "Următoarele persoane nu pot fi adăugate la acest DM de grup:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "Invitația a fost creată de {user} pe {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "Invitația a fost creată de {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "Invitația a fost creată pe {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "Invitația nu a fost folosită niciodată." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "Invitația era programată să expire pe {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "Invitația a fost setată să permită utilizări nelimitate." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "Invitația a fost setată să expire după {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "Invitația a fost setată pentru a acorda calitatea de membru temporar." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "Invitația a fost setată să nu expire niciodată." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "Limba vorbită de majoritatea membrilor comunității tale. Folosită pentru a filtra rezultatele din Discovery." @@ -32518,6 +34051,11 @@ msgstr "Linkul ar putea fi încă activ. Încearcă din nou mai târziu." msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "Verificarea conținutului matur a fost anulată. Poți închide această filă și poți încerca din nou din aplicație." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "Membrul nu mai este temporar." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "Noul preț este deja programat pentru {effectiveDate}." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "Noul canal vocal va reutiliza permisiunile, limita de utilizatori și rata de biți de la <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "Suprascrierea a permis {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "Suprascrierea a refuzat {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "Pagina pe care o cauți nu există sau a fost mutată." @@ -32565,6 +34113,11 @@ msgstr "Adresa redirect_uri furnizată nu este înregistrată pentru această ap msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "Adresa redirect_uri furnizată trebuie să utilizeze HTTP sau HTTPS." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "Rolul a acordat {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "Stickerul a fost încărcat ca animat." msgid "The sticker was uploaded as static." msgstr "Stickerul a fost încărcat ca static." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "Stickerul a fost încărcat de {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "Sistemul i-a acordat rolul {role} lui {target}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "Sistemul a eliminat rolul {role} de la {target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "Numele de utilizator <0>{fluxerTag} este deja folosit. Continuarea v msgid "The verification code is invalid or expired." msgstr "Codul de verificare este incorect sau a expirat." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "Webhook-ul a fost creat de {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Acest card nu corespunde țării tale de facturare, deci nu poate fi utilizat pentru această monedă localizată. Folosește un card local sau revino la {productName} și alege altă metodă de plată." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "Această categorie conține deja numărul maxim de {maxChannelsPerCategory} canale." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Urmărește acțiunile moderatorilor în comunitate." @@ -33953,6 +35526,11 @@ msgstr "Transferi proprietatea grupului către {userName}?" msgid "Transfer ownership" msgstr "Transferă proprietatea" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "A transferat proprietatea comunității către {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Activează confidențialitatea pentru streaming" msgid "Turn text smileys into emoji" msgstr "Transformă smiley-urile text în emoji" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "A dezactivat conținutul pentru adulți." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "A dezactivat modul lent." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "A dezactivat avertismentul de conținut." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "A dezactivat bannerul detașat." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "A dezactivat microfonul membrului în această comunitate." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "A activat conținutul pentru adulți." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "A activat avertismentul de conținut." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "A activat bannerul detașat." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "A reactivat microfonul membrului în această comunitate." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Dezactivarea domeniilor de autorizare poate împiedica funcționarea corectă a aplicației." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "Ucraineană" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Nu se pot încărca jurnalele de activitate" @@ -34859,6 +36482,7 @@ msgstr "Țintă necunoscută" msgid "unknown user" msgstr "utilizator necunoscut" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "utilizator necunoscut" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Folosit doar în această comunitate." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Vermont" msgid "Version" msgstr "Versiune" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Foarte ridicat" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Cameră web" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Webhook creat" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhook șters" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Nume webhook" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhook actualizat" diff --git a/fluxer_app/src/features/i18n/locales/ru/messages.po b/fluxer_app/src/features/i18n/locales/ru/messages.po index e4ee6f512..91bf83a5c 100644 --- a/fluxer_app/src/features/i18n/locales/ru/messages.po +++ b/fluxer_app/src/features/i18n/locales/ru/messages.po @@ -56,6 +56,31 @@ msgstr "{a} печатает…" msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} и {c} печатают…" +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} добавил(а) переопределение разрешений для {user} в {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} добавил(а) переопределение разрешений для @everyone в {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} добавил(а) переопределение разрешений для роли {role} в {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} добавил(а) стикер." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} добавил(а) эмодзи." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} добавил разрешения канала для {targetEntity} в {channelNode}." @@ -64,35 +89,200 @@ msgstr "{actor} добавил разрешения канала для {targetE msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} добавил разрешения канала для {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} добавил(а) бота {target} как временного участника." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} добавил(а) бота {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} добавил бота {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} добавил(а) эмодзи {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} добавил эмодзи «{namedTarget}»." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} добавил(а) стикер {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} добавил стикер «{namedTarget}»." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} забанил(а) {target} на {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} забанил(а) {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} забанил {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} изменил(а) окончание блокировки отправки сообщений, реакций и подключения к голосовым каналам для {target} на {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} изменил(а) никнейм {target} с {oldNick} на {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} изменил(а) переопределения разрешений для категории {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} изменил(а) переопределения разрешений для канала {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} изменил(а) переопределения разрешений для канала-ссылки {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} изменил(а) переопределения разрешений для текстового канала {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} изменил(а) переопределения разрешений для голосового канала {channel}." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} изменил(а) короткую ссылку с {oldCode} на {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} изменил(а) аватар своего профиля сообщества." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} изменил(а) баннер своего профиля сообщества." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} изменил(а) описание своего профиля сообщества на {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} сменил(а) свой никнейм с {oldNick} на {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} создал(а) вебхук." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} создал(а) категорию {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} создал(а) канал {channel} в {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} создал(а) канал {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} создал канал «{namedTarget}»." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} создал(а) приглашение {code} для {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} создал(а) приглашение {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} создал приглашение {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} создал(а) канал-ссылку {channel} в {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} создал(а) канал-ссылку {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} создал роль «{namedTarget}»." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} создал(а) роль {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} создал(а) текстовый канал {channel} в {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} создал(а) текстовый канал {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} создал(а) голосовой канал {channel} в {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} создал(а) голосовой канал {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} создал(а) вебхук {name} в {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} создал(а) вебхук {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} создал вебхук «{namedTarget}»." @@ -103,49 +293,209 @@ msgstr "{actor} создал вебхук «{namedTarget}»." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} удалил {0} {bulkCount, plural, one {сообщение} few {сообщения} many {сообщений} other {сообщения}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} удалил(а) {count, plural, one {# сообщение} few {# сообщения} many {# сообщений} other {# сообщения}} в {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} удалил(а) {count, plural, one {# сообщение} few {# сообщения} many {# сообщений} other {# сообщения}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} удалил(а) сообщение в {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} удалил(а) сообщение." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} удалил сообщение{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} удалил(а) стикер." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} удалил(а) вебхук." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} удалил(а) эмодзи." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} удалил несколько сообщений{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} удалил(а) несколько сообщений в {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} удалил(а) несколько сообщений." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} удалил(а) категорию {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} удалил(а) канал {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} удалил канал «{namedTarget}»." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} удалил(а) эмодзи {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} удалил эмодзи «{namedTarget}»." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} удалил(а) приглашение {code} для {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} удалил(а) приглашение {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} удалил приглашение {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} удалил(а) канал-ссылку {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} удалил роль «{namedTarget}»." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} удалил(а) роль {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} удалил(а) стикер {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} удалил стикер «{namedTarget}»." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} удалил(а) текстовый канал {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} удалил(а) голосовой канал {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} удалил(а) вебхук {name} из {channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} удалил(а) вебхук {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} удалил вебхук «{namedTarget}»." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} отключил(а) {target} от {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} отключил(а) {target} от голосового канала." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} отключил {targetMember} от голосового канала." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} отключил(а) себя от {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} отключил(а) себя от голосового канала." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} выдал(а) роль {role} пользователю {target}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} исключил(а) {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} исключил {targetMember}." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} снова разрешил(а) {target} слышать других в этом сообществе." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} внёс(ла) изменение, которое эта версия приложения не может отобразить." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} переместил(а) {target} из {oldChannel} в {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} переместил(а) {target} в {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} переместил(а) {target} в другой голосовой канал." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} переместил {targetMember} в {channelNode}." @@ -154,16 +504,68 @@ msgstr "{actor} переместил {targetMember} в {channelNode}." msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} переместил {targetMember} в другой голосовой канал." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} переместил(а) себя из {oldChannel} в {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} переместил(а) роль {role} ниже в списке участников." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} переместил(а) роль {role} ниже в списке ролей." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} переместил(а) роль {role} выше в списке участников." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} переместил(а) роль {role} выше в списке ролей." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} переместил(а) себя в {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} переместил(а) себя в другой голосовой канал." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} приостановил(а) приглашения." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} выполнил действие аудита над {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} закрепил(а) сообщение в {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} закрепил(а) сообщение." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} закрепил сообщение{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} удалил неактивных участников." @@ -179,19 +581,249 @@ msgstr "{actor} удалил разрешения канала для {targetEnt msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} удалил разрешения канала для {targetEntity}." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} удалил(а) никнейм {nick} у {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} удалил(а) переопределение разрешений для {user} из канала {channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} удалил(а) переопределение разрешений для @everyone из {channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} удалил(а) переопределение разрешений для роли {role} из канала {channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} удалил(а) роль {role} у {target}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} снял(а) тайм-аут с {target}." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} удалил(а) короткую ссылку {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} удалил(а) акцентный цвет своего профиля сообщества." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} удалил(а) аватар своего профиля сообщества." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} удалил(а) баннер своего профиля сообщества." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} удалил(а) описание своего профиля сообщества." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} удалил(а) свои местоимения из профиля сообщества." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} удалил(а) свой никнейм {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} переименовал(а) категорию «{oldName}» в «{newName}»." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} переименовал(а) канал «{oldName}» в «{newName}»." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} переименовал(а) сообщество «{oldName}» в «{newName}»." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} переименовал(а) эмодзи {oldEmoji} в {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} переименовал(а) канал-ссылку «{oldName}» в «{newName}»." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} переименовал(а) роль «{oldName}» в «{newName}»." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} переименовал(а) стикер «{oldName}» в «{newName}»." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} переименовал(а) текстовый канал «{oldName}» в «{newName}»." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} переименовал(а) голосовой канал «{oldName}» в «{newName}»." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} переименовал(а) вебхук «{oldName}» в «{newName}»." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} сбросил(а) позицию роли {role} в списке участников." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} возобновил(а) приглашения." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} установил(а) позицию в списке участников для роли {role}." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} установил(а) для {target} никнейм {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} установил(а) короткую ссылку {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} изменил(а) акцентный цвет своего профиля сообщества на {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} установил(а) аватар своего профиля сообщества." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} установил(а) баннер своего профиля сообщества." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} установил(а) описание своего профиля сообщества: {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} установил(а) местоимения в профиле сообщества: {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} установил(а) себе никнейм {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} запретил(а) {target} слышать других в этом сообществе." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} отправил(а) {target} в тайм-аут до {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} передал(а) владение сообществом пользователю {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} снова включил(а) микрофон у {target} в этом сообществе." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} отключил(а) микрофон у {target} в этом сообществе." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} разбанил(а) {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} разбанил {targetMember}." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} открепил(а) сообщение в {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} открепил(а) сообщение." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} открепил сообщение{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} обновил(а) {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} изменил данные {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} обновил(а) стикер." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} обновил(а) вебхук." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} обновил(а) эмодзи." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} изменил разрешения канала для {targetEntity} в {channelNode}." @@ -204,35 +836,112 @@ msgstr "{actor} изменил разрешения канала для {targetE msgid "{actor} updated roles for {targetMember}." msgstr "{actor} изменил роли для {targetMember}." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} обновил(а) категорию {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} изменил(а) канал {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} изменил канал «{namedTarget}»." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} изменил настройки сообщества." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} обновил(а) эмодзи {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} изменил эмодзи «{namedTarget}»." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} обновил(а) приглашение {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} изменил приглашение {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} обновил(а) канал-ссылку {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} изменил(а) переопределение разрешений для {user} в {channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} изменил(а) переопределение разрешений для @everyone в {channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} изменил(а) переопределение разрешений для роли {role} в {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} изменил роль «{namedTarget}»." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} обновил(а) роль {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} обновил(а) роли для {target}." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} обновил(а) стикер {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} изменил стикер «{namedTarget}»." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} обновил(а) текстовый канал {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} обновил(а) голосовой канал {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} обновил(а) вебхук {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} изменил вебхук «{namedTarget}»." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} обновил(а) свой профиль сообщества." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# запись} few {# записи} many {# зап msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# участник} few {# участника} many {# участников} other {# участников}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {ещё # разрешение} few {ещё # разрешения} many {ещё # разрешений} other {ещё # разрешения}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# общее сообщество} few {# общих сообщества} many {# общих сообществ} other {# общих сообществ}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {Показать # устройство} few {По msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Выйти из # устройства} few {Выйти из # устройств} many {Выйти из # устройств} other {Выйти из # устройств}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {Приглашение было ограничено # использованием.} few {Приглашение было ограничено # использованиями.} many {Приглашение было ограничено # использованиями.} other {Приглашение было ограничено # использованиями.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {Приглашение было использовано # раз.} few {Приглашение было использовано # раза.} many {Приглашение было использовано # раз.} other {Приглашение было использовано # раза.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "Каналы «{guildName}»" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Активность" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Журнал действий" @@ -2713,10 +3437,60 @@ msgstr "Добавлено: {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "{length, plural, one {Добавлена # ссылка на локальный файл} few {Добавлено # ссылки на локальные файлы} many {Добавлено # ссылок на локальные файлы} other {Добавлено # ссылок на локальные файлы}}." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "Добавлен фон для встраиваемых сообщений." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Добавлен баннер сообщества." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Добавлен значок сообщества." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "Добавлено предупреждение о контенте с текстом {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Добавлено предупреждение о контенте." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "Добавлен аватар." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Добавлен фон для приглашений." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Добавлены роли." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Добавлен аватар участника в профиле сообщества." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Добавлен баннер профиля участника в сообществе." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "Добавлена роль {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Настройки выравнивания доступны тольк #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Все <0/>, навсегда. Без платежей и продлений." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Все действия" @@ -3001,10 +3775,12 @@ msgstr "Все языки" msgid "All members" msgstr "Все участники" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "За всё время" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Все пользователи" @@ -3197,6 +3973,16 @@ msgstr "Разрешено {0} и отменено разрешение для { msgid "Allowed {0}." msgstr "Разрешено {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "Разрешены {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Разрешено всем участникам упоминать эту роль." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Разрешенные звонки" @@ -3205,15 +3991,35 @@ msgstr "Разрешенные звонки" msgid "Allowed everyone to mention this role." msgstr "Всем разрешено упоминать эту роль." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Разрешены гибкие названия текстовых каналов." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Разрешенные приглашения" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Разрешено другим клонировать эмодзи этого сообщества." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Разрешено другим клонировать стикеры этого сообщества." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Разрешенные перенаправления" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Разрешено до {count, plural, one {# подключения} few {# подключений} many {# подключений} other {# подключения}} на участника." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Банить участников" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Банить участников сообщества с возможностью удалить их недавние сообщения." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Причина бана" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Заблокировать пользователя" msgid "Blocked" msgstr "Заблокированные" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Участнику запрещено отправлять сообщения, ставить реакции и присоединяться к голосовым каналам до {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Бот" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Бот добавлен" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Категория удалена" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Категория заполнена" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "По центру" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "По центру" @@ -6298,11 +7116,183 @@ msgstr "Изменить имя пользователя" msgid "Changed nickname from {0} to {1}." msgstr "Никнейм изменён с {0} на {1}." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Изменён медленный режим с {oldDuration} на {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "Изменён AFK-канал с {oldChannel} на {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "Изменено время ожидания неактивности с {oldDuration} на {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "Изменено качество звука с {oldKbps} кбит/с на {newKbps} кбит/с." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Изменён аватар." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Битрейт изменён на {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Окончание блокировки отправки сообщений, реакций и подключения к голосовым каналам изменено на {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Изменен фон встраиваемых сообщений." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Изменён баннер сообщества." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Изменён значок сообщества." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "Изменено количество подключений на участника с {oldCount} на {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "Изменён текст предупреждения о контенте с {oldText} на {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Изменён пользовательский значок роли." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Изменен пользовательский текст предупреждения с {oldText} на {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "Изменена настройка уведомлений по умолчанию с {oldSetting} на {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Изменено описание с {oldText} на {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Изменен фильтр откровенного контента с {oldFilter} на {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Изменено выравнивание фона приглашения с {oldAlignment} на {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Изменён фон приглашения." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "Изменена ссылка с {oldUrl} на {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Изменён аватар участника в профиле сообщества." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Изменён баннер профиля участника в сообществе." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "Изменено описание профиля участника в сообществе на {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "Изменён порог истории сообщений с {oldDate} на {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "Изменено название с {oldName} на {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "Изменён никнейм с {oldNick} на {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Изменён цвет роли с {oldColor} на {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Изменён значок роли с {oldEmoji} на {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "Изменён системный канал с {oldChannel} на {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Изменена тема с {oldText} на {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "Изменён лимит пользователей с {oldCount} на {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "Изменена короткая ссылка с {oldCode} на {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Изменен уровень проверки с {oldLevel} на {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "Изменён голосовой регион с {oldRegion} на {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "канал" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Канал или категория" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Переопределение канала добавлено" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Переопределение канала удалено" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Переопределение канала обновлено" @@ -7815,7 +8805,7 @@ msgstr "В сообществах, где более 250 участников, #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Удалить свои сообщения в этом чате?" msgid "Deleted" msgstr "Удалено" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "Удалена история сообщений участника за {duration}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Удаленный текст" msgid "Deleted your messages." msgstr "Ваши сообщения удалены." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "удалённая-категория" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "удалённый-канал" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "удалённая-роль" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "Запрещено {0} и отменён запрет для {1}." msgid "Denied {0}." msgstr "Запрещено {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "Запрещены {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Встраиваемые элементы показаны" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Клонирование эмодзи включено" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Эмодзи создан" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Эмодзи удалён" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Слоты для эмодзи заполнены" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Эмодзи обновлён" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Фильтровать по дате создания аккаунта" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Фильтр по действию" @@ -14572,18 +15587,22 @@ msgstr "Фильтровать по ролям" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Фильтр по пользователю" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Фильтровать всех" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Фильтровать участников без ролей" @@ -15890,6 +16909,11 @@ msgstr "Выдано {0}, отозвано {1}." msgid "Granted {0}." msgstr "Выдано {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "Предоставлены разрешения: {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Привет, {username}! Надеемся, вам у нас понра msgid "Hey, {username}, welcome aboard!" msgstr "Привет, {username}, добро пожаловать!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Скрыты сообщения о присоединении в системном канале." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Скрыта корона владельца сообщества." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Скрыть свою камеру?" msgid "Hide your own screen share?" msgstr "Скрыть демонстрацию своего экрана?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Высокий" @@ -17688,7 +18724,7 @@ msgstr "Пригласить" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "Код приглашения: {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Приглашение создано" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Приглашение удалено" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Приглашение недоступно" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Приглашение обновлено" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (слева)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "По левому краю" @@ -18745,6 +19783,11 @@ msgstr "Включите, чтобы программы чтения с экра msgid "Let the community self-moderate" msgstr "Сообщество модерирует себя само" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Участнику снова разрешено слышать других в этом сообществе." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Позволяет пользовательскому CSS отображать прозрачные области окна после перезапуска приложения на компьютере." @@ -18815,6 +19858,16 @@ msgstr "Понравилось." msgid "Likes: <0>{countLabel}" msgstr "Отметки «Нравится»: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "Ограничено упоминание этой роли участниками с разрешением упоминать любую роль." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Ограничено до {count, plural, one {# пользователя} few {# пользователей} many {# пользователей} other {# пользователей}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Луизиана" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Низкий" @@ -19204,6 +20259,11 @@ msgstr "macOS (устройство по умолчанию)" msgid "macOS permissions" msgstr "Разрешения macOS" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Канал теперь наследует настройку контента для взрослых." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Эмодзи отмечен как анимированный." msgid "Marked emoji as static." msgstr "Эмодзи отмечен как статичный." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Канал помечен как содержащий контент для взрослых." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Канал помечен как не содержащий контента для взрослых." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "Участник отмечен как постоянный." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Остановить воспроизведение" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Средний" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Средний размер (по умолчанию)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Участник" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Действия с участником {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Участник забанен" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Участник отключен" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Участник исключен" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Списки участников временно недоступны в этом сообществе" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Участник перемещен" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Участник не найден" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Роли участника обновлены" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Участник с" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Участник разбанен" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Участник изменен" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Участники будут удалены, когда выйдут из сети, если им не назначена роль." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Участники удалены" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "Участники без разрешения «{readMessageHistoryPermissionLabel}» могут просматривать сообщения, отправленные после этой даты." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Участники, выбрано" @@ -20077,8 +21149,10 @@ msgstr "Упоминания о вас отображаются здесь в т msgid "Mentions of you show up here for {retentionDays} days." msgstr "Упоминания о вас отображаются здесь в течение {retentionDays} дней." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Только упоминания" @@ -20104,7 +21178,7 @@ msgstr "сообщение" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Сообщение" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Отладка сообщения" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Сообщение удалено" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Список сообщений для {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Сообщение закреплено" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Время сообщения" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Сообщение откреплено" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Сообщения и медиа" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Сообщения удалены" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Модерация" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Здесь будут отображаться действия модерации и изменения сообщества." @@ -20915,16 +21989,51 @@ msgstr "Переместить в" msgid "Move to…" msgstr "Переместить в…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Перемещено из {oldChannel} в {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Канал перенесён из категории {oldCategory} в категорию {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Канал перемещён в категорию {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Канал перемещён в категорию {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "Роль перемещена ниже в списке участников." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "Роль перемещена ниже в списке ролей." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Роль перемещена на позицию {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "Роль перемещена выше в списке участников." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "Роль перемещена выше в списке ролей." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Новое сообщение" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Новые сообщения" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "Нет ссылок на локальные файлы" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Пока нет записей" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "Причина не указана" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "Причина не указана." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Без преобразования" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Без преобразования" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "Конструктор URL OAuth2" msgid "Objects" msgstr "Объекты" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Объекты" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Выкл" @@ -23523,6 +24636,21 @@ msgstr "Не удалось загрузить исходное сообщени msgid "Original message was deleted" msgstr "Исходное сообщение удалено" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Изначально забанен пользователем {user} {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Изначально забанен пользователем {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Изначально забанен {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Приостановлено из-за уменьшения движен msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "Приостановлено из-за уменьшения движения. Включите, чтобы GIF-файлы воспроизводились." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Приглашения приостановлены." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Навсегда удалить аккаунт и все связанн msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Навсегда удалить отправленные вами сообщения в личных чатах, групповых чатах и сообществах. Процесс выполняется в фоновом режиме, и вы получите личное сообщение по его завершении." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Переопределение разрешений добавлено" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Переопределение разрешений удалено" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Переопределение разрешений изменено" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Готовы оформить подписку?" msgid "Real-time" msgstr "В реальном времени" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Причина" @@ -26291,26 +27440,166 @@ msgstr "Удалена роль «{oldLabel}»." msgid "Removed roles." msgstr "Роли удалены." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "Удалён AFK-канал." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Удалён аватар." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Канал удален из категории." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Канал убран из категории {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Удалён фон для встраиваемых сообщений." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "Удален баннер сообщества." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Удален значок сообщества." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "Удалён текст предупреждения о контенте." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Удалено предупреждение о контенте." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Удалён пользовательский значок роли." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Удалён пользовательский текст предупреждения." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Удалено описание {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Удалён фон приглашения." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Удалена ссылка." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Удалён акцентный цвет профиля участника в сообществе." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Удалён аватар участника из профиля сообщества." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Удалён баннер профиля участника в сообществе." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Удалено описание профиля участника в сообществе." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "Удалены местоимения участника из профиля сообщества." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Удалён порог истории сообщений." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "Удален никнейм {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "Удалено переопределение для {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "Удалена роль {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Удалён цвет роли." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Удален значок роли." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Канал правил убран." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "Системный канал убран." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "Тайм-аут снят." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "Удалена тема {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Эмодзи Юникода удалён." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Снят лимит пользователей." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "Удалена короткая ссылка {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Тайм-аут для {targetUserTag} снят" @@ -26381,6 +27670,11 @@ msgstr "Стикер переименован в «{0}»." msgid "Renamed the channel to {0}." msgstr "Канал переименован в «{0}»." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Переименовано сообщество из {oldName} в {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Требовать двухфакторную аутентификаци msgid "Required" msgstr "Обязательно" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "Включено требование двухфакторной аутентификации для действий модерации." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Сбросить интервал" msgid "Reset the connection limit." msgstr "Лимит подключений сброшен." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "Позиция роли в списке участников сброшена." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Упоминать эту роль могут только участн msgid "Resubscribe" msgstr "Подписаться снова" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Приглашения возобновлены." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Вернуться ко входу" @@ -27330,6 +28639,11 @@ msgstr "Отозвать это приглашение? Действие нео msgid "Revoked {0}." msgstr "Отозвано {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "Удалены {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (справа)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Выровнено по правому краю" @@ -27408,7 +28724,7 @@ msgstr "Рингтон" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Роль" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Цвет роли" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Роль создана" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Роль успешно создана" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Роль удалена" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "Требуется название роли" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Роль обновлена" @@ -28930,11 +30246,21 @@ msgstr "Сессии" msgid "Set {fieldNode} to {0}." msgstr "Установлено поле «{fieldNode}»: {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Установлен пользовательский значок роли." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Задать свой статус" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Для роли задана позиция в списке участников." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "Установлен цвет роли: <0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "Установлен медленный режим: {0} {seconds, plural, one {секунда} few {секунды} many {секунд} other {секунды}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Установлен медленный режим: {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Установить статус" msgid "Set the AFK channel to {0}." msgstr "Установлен AFK-канал: {0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "Установлен AFK-канал: {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "Установлено время ожидания неактивности: {0} с." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "Установлено качество звука: {kbps} кбит/с." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "Установлен тип канала: {0}." msgid "Set the connection limit to {0}." msgstr "Установлен лимит подключений: {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "Установлен текст предупреждения о контенте: {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "Установлен пользовательский текст предупреждения: {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "Установлено описание: {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "Установлено выравнивание заставки приглашения: {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "Установлена ссылка: {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "Установлен акцентный цвет профиля участника в сообществе: {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "Установлено описание профиля участника в сообществе: {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "Установлены местоимения участника в профиле сообщества: {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "Установлен порог истории сообщений: {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "Установлен никнейм: {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Задайте общедоступное название продукта, цвет темы и графические элементы, которые отображаются в клиентах." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "Установлен цвет роли: {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "Установлен значок роли: {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "Установлен канал правил: {0}." msgid "Set the system channel to {0}." msgstr "Установлен системный канал: {0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "Установлен системный канал: {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "Установлена тема: {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "Установлен лимит пользователей: {0}." msgid "Set the vanity URL to {0}." msgstr "Установлен пользовательский URL: {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "Установлена короткая ссылка: {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "Установлен голосовой регион: {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "Установлен автоматический выбор голосового региона." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Показывать баннер глобального профиля msgid "Show your Visionary as a regular subscription instead" msgstr "Показывать Visionary как обычную подписку" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Участники с этой ролью показаны в отдельном разделе списка участников." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Что-то пошло не так при оформлении возврата. Если это повторится, обратитесь в службу поддержки." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Что-то пошло не так при загрузке журнала действий." @@ -31105,6 +32531,11 @@ msgstr "Начать голосовой звонок" msgid "Start with computer" msgstr "Запускать при включении компьютера" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "Участники с этой ролью теперь отображаются отдельно." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "стикер" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "Не удалось достаточно сжать стикер" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Стикер создан" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Стикер удален" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Нет места для стикеров" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Стикер обновлен" @@ -31412,6 +32843,46 @@ msgstr "Остановить просмотр трансляции" msgid "Stop." msgstr "Стоп." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Запрещено использовать гибкие названия текстовых каналов." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Запрещено другим клонировать эмодзи этого сообщества." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Запрещено другим клонировать стикеры этого сообщества." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Участники с этой ролью больше не отображаются отдельно." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Сообщения о присоединении в системном канале больше не скрываются." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Корона владельца сообщества больше не скрывается." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Отключено требование двухфакторной аутентификации для действий модерации." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Участнику запрещено слышать других в этом сообществе." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Синхронизировать с категорией" msgid "Syntax highlighting" msgstr "Подсветка синтаксиса" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "Система" @@ -32449,6 +33922,16 @@ msgstr "Приложение вылетело. Проверяем обновле msgid "The app should now be signed in to your account." msgstr "Теперь вы должны быть авторизованы в приложении." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "Срок бана уже истёк {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "Срок бана должен был истечь {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "Бот добавлен в <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "Обновление для ПК загружено. Перезапус msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "Загруженный файл сохранен на вашем компьютере. Установите его с помощью обычного менеджера пакетов." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "Эмодзи загрузил(а) {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "Файл содержит токен подтверждения, который мы получим с <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "Файл, который вы загружаете, превышает msgid "The following people can't be added to this group DM:" msgstr "Этих людей нельзя добавить в групповой чат:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "Приглашение было создано пользователем {user} {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "Приглашение было создано пользователем {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "Приглашение было создано {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "Приглашение так и не было использовано." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "Срок действия приглашения должен был истечь {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "Приглашение было настроено на неограниченное количество использований." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "Приглашение было настроено на истечение через {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "Приглашение было настроено для предоставления временного членства." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "Приглашение установлено без срока действия." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "Язык, на котором говорит большинство участников вашего сообщества. Используется для фильтрации результатов в каталоге." @@ -32518,6 +34051,11 @@ msgstr "Ссылка всё ещё может работать. Повторит msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "Проверка контента для взрослых отменена. Вы можете закрыть эту вкладку и повторить попытку из приложения." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "Участник больше не является временным." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "Новая цена уже запланирована на {effectiveDat msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "Новый голосовой канал будет использовать те же разрешения, лимит пользователей и битрейт, что и <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "Переопределение разрешало {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "Переопределение запрещало {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "Страница, которую вы ищете, не существует или была перемещена." @@ -32565,6 +34113,11 @@ msgstr "Указанный redirect_uri не зарегистрирован дл msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "Указанный redirect_uri должен использовать HTTP или HTTPS." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "Роль предоставляла {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "Стикер загружен как анимированный." msgid "The sticker was uploaded as static." msgstr "Стикер загружен как статичный." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "Стикер был загружен пользователем {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "Система выдала пользователю {target} роль {role}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "Система автоматически удалила роль {role} у {target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "Имя пользователя <0>{fluxerTag} уже занято. msgid "The verification code is invalid or expired." msgstr "Неверный код подтверждения или срок его действия истёк." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "Вебхук был создан пользователем {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Эта карта не соответствует вашей стране выставления счетов, поэтому ее нельзя использовать для данной локализованной валюты. Используйте местную карту или вернитесь в {productName} и выберите другой способ оплаты." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "В этой категории уже максимальное количество каналов: {maxChannelsPerCategory}." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Отслеживайте действия модераторов в сообществе." @@ -33953,6 +35526,11 @@ msgstr "Передать права владельца группы пользо msgid "Transfer ownership" msgstr "Передать права владельца" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Владение сообществом передано пользователю {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Включить конфиденциальность стрима" msgid "Turn text smileys into emoji" msgstr "Преобразовывать текстовые смайлики в эмодзи" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Отключён контент для взрослых." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Медленный режим отключен." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "Отключено предупреждение о контенте." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Отключён откреплённый баннер." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Отключён микрофон участника в этом сообществе." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Включен контент для взрослых." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "Включено предупреждение о контенте." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Включён откреплённый баннер." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "Снова включён микрофон участника в этом сообществе." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Отключение разрешений может привести к некорректной работе приложения." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "Украинский" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Не удалось загрузить журнал действий" @@ -34859,6 +36482,7 @@ msgstr "Неизвестная цель" msgid "unknown user" msgstr "неизвестный пользователь" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "неизвестный пользователь" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Используется только в этом сообществе." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Вермонт" msgid "Version" msgstr "Версия" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Очень высокий" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Веб-камера" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Вебхук" @@ -37681,13 +39308,13 @@ msgstr "Вебхук {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Вебхук создан" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Вебхук удалён" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Название вебхука" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Вебхук обновлён" diff --git a/fluxer_app/src/features/i18n/locales/sv-SE/messages.po b/fluxer_app/src/features/i18n/locales/sv-SE/messages.po index 54a7968b8..584b2b0fa 100644 --- a/fluxer_app/src/features/i18n/locales/sv-SE/messages.po +++ b/fluxer_app/src/features/i18n/locales/sv-SE/messages.po @@ -56,6 +56,31 @@ msgstr "{a} skriver..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} och {c} skriver..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} lade till en behörighetsåsidosättning för {user} i {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} lade till en behörighetsåsidosättning för @everyone i {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} lade till en behörighetsåsidosättning för rollen {role} i {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} lade till ett klistermärke." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} lade till en emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} lade till kanalbehörigheter för {targetEntity} i {channelNode}." @@ -64,35 +89,200 @@ msgstr "{actor} lade till kanalbehörigheter för {targetEntity} i {channelNode} msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} lade till kanalbehörigheter för {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} lade till boten {target} som en tillfällig medlem." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} lade till boten {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} lade till boten {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} lade till emojin {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} lade till emojin {namedTarget}." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} lade till klistermärket {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} lade till klistermärket {namedTarget}." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} bannlyste {target} i {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} bannlyste {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} bannlyste {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} ändrade {target}s blockering av att skicka meddelanden, reagera och ansluta till röstkanaler så att den gäller fram till {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} ändrade smeknamnet för {target} från {oldNick} till {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} ändrade behörighetsåsidosättningarna för kategorin {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} ändrade behörighetsåsidosättningarna för kanalen {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} ändrade behörighetsåsidosättningarna för länkkanalen {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} ändrade behörighetsåsidosättningarna för textkanalen {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} ändrade behörighetsåsidosättningarna för röstkanalen {channel}." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} ändrade den anpassade URL:en från {oldCode} till {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} ändrade avataren i sin communityprofil." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} ändrade bannern i sin communityprofil." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} ändrade presentationen i sin communityprofil till {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} ändrade sitt smeknamn från {oldNick} till {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} skapade en webhook." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} skapade kategorin {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} skapade kanalen {channel} i {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} skapade kanalen {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} skapade kanalen {namedTarget}." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} skapade inbjudan {code} för {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} skapade inbjudan {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} skapade inbjudan {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} skapade länkkanalen {channel} i {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} skapade länkkanalen {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} skapade rollen {namedTarget}." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} skapade rollen {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} skapade textkanalen {channel} i {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} skapade textkanalen {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} skapade röstkanalen {channel} i {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} skapade röstkanalen {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} skapade webhooken {name} i {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} skapade webhooken {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} skapade webhooken {namedTarget}." @@ -103,49 +293,209 @@ msgstr "{actor} skapade webhooken {namedTarget}." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} raderade {0} {bulkCount, plural, one {meddelande} other {meddelanden}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} raderade {count, plural, one {ett meddelande} other {# meddelanden}} i {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} raderade {count, plural, one {# meddelande} other {# meddelanden}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} raderade ett meddelande i {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} raderade ett meddelande." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} tog bort ett meddelande{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} tog bort ett klistermärke." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} tog bort en webhook." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} tog bort en emoji." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} raderade flera meddelanden{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} raderade några meddelanden i {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} raderade några meddelanden." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} raderade kategorin {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} raderade kanalen {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} tog bort kanalen {namedTarget}." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} tog bort emojin {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} tog bort emojin {namedTarget}." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} tog bort inbjudan {code} för {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} tog bort inbjudan {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} tog bort inbjudan {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} tog bort länkkanalen {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} tog bort rollen {namedTarget}." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} tog bort rollen {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} tog bort klistermärket {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} tog bort klistermärket {namedTarget}." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} raderade textkanalen {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} raderade röstkanalen {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} tog bort webhooken {name} från {channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} tog bort webhooken {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} tog bort webhooken {namedTarget}." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} kopplade bort {target} från {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} kopplade bort {target} från röstchatten." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} kopplade ner {targetMember} från röstkanalen." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} kopplade från {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} kopplade från röstchatten." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} gav {target} rollen {role}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} sparkade ut {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} sparkade ut {targetMember}." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} lät {target} höra andra i den här communityn igen." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} gjorde en ändring som den här versionen av appen inte kan visa." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} flyttade {target} från {oldChannel} till {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} flyttade {target} till {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} flyttade {target} till en annan röstkanal." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} flyttade {targetMember} till {channelNode}." @@ -154,16 +504,68 @@ msgstr "{actor} flyttade {targetMember} till {channelNode}." msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} flyttade {targetMember} till en annan röstkanal." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} flyttade från {oldChannel} till {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} flyttade rollen {role} nedåt i medlemslistan." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} flyttade rollen {role} nedåt i rollistan." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} flyttade rollen {role} uppåt i medlemslistan." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} flyttade rollen {role} uppåt i rollistan." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} flyttade till {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} flyttade till en annan röstkanal." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} pausade inbjudningar." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} utförde en granskningsåtgärd på {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} fäste ett meddelande i {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} fäste ett meddelande." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} fäste ett meddelande{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} tog bort inaktiva medlemmar." @@ -179,19 +581,249 @@ msgstr "{actor} tog bort kanalbehörigheter för {targetEntity} i {channelNode}. msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} tog bort kanalbehörigheter för {targetEntity}." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} tog bort smeknamnet {nick} från {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} tog bort behörighetsåsidosättningen för {user} från {channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} tog bort behörighetsåsidosättningen för @everyone från {channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} tog bort behörighetsåsidosättningen för rollen {role} från {channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} tog bort rollen {role} från {target}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} tog bort timeouten för {target}." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} tog bort den anpassade URL:en {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} tog bort accentfärgen i sin communityprofil." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} tog bort avataren i sin communityprofil." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} tog bort bannern i sin communityprofil." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} tog bort presentationen i sin communityprofil." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} tog bort pronomenen i sin communityprofil." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} tog bort sitt smeknamn {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} bytte namn på kategorin {oldName} till {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} bytte namn på kanalen {oldName} till {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} bytte namn på communityn från {oldName} till {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} bytte namn på emojin {oldEmoji} till {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} bytte namn på länkkanalen {oldName} till {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} bytte namn på rollen {oldName} till {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} bytte namn på klistermärket {oldName} till {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} bytte namn på textkanalen {oldName} till {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} bytte namn på röstkanalen {oldName} till {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} bytte namn på webhooken {oldName} till {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} återställde positionen i medlemslistan för rollen {role}." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} återupptog inbjudningar." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} ställde in en position i medlemslistan för rollen {role}." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} ändrade smeknamnet för {target} till {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} ställde in den anpassade URL:en till {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} ändrade accentfärgen för sin communityprofil till {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} lade till avataren i sin communityprofil." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} lade till bannern i sin communityprofil." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} ändrade presentationen i sin communityprofil till {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} ändrade pronomenen för sin communityprofil till {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} ändrade sitt smeknamn till {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} hindrade {target} från att höra andra i den här communityn." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} gav {target} en timeout till {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} överförde ägarskapet för communityn till {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} slog på {target}s mikrofon igen i den här communityn." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} stängde av {target}s mikrofon i den här communityn." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} hävde bannlysningen för {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} hävde bannlysningen för {targetMember}." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} lossade ett meddelande i {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} lossade ett meddelande." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} lossade ett fäst meddelande{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} uppdaterade {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} uppdaterade {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} uppdaterade ett klistermärke." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} uppdaterade en webhook." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} uppdaterade en emoji." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} uppdaterade kanalbehörigheter för {targetEntity} i {channelNode}." @@ -204,35 +836,112 @@ msgstr "{actor} uppdaterade kanalbehörigheter för {targetEntity}." msgid "{actor} updated roles for {targetMember}." msgstr "{actor} uppdaterade roller för {targetMember}." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} uppdaterade kategorin {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} uppdaterade kanalen {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} uppdaterade kanalen {namedTarget}." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} uppdaterade communityinställningarna." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} uppdaterade emojin {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} uppdaterade emojin {namedTarget}." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} uppdaterade inbjudan {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} uppdaterade inbjudan {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} uppdaterade länkkanalen {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} uppdaterade behörighetsåsidosättningen för {user} i {channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} uppdaterade behörighetsåsidosättningen för @everyone i {channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} uppdaterade behörighetsåsidosättningen för rollen {role} i {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} uppdaterade rollen {namedTarget}." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} uppdaterade rollen {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} uppdaterade rollerna för {target}." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} uppdaterade klistermärket {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} uppdaterade klistermärket {namedTarget}." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} uppdaterade textkanalen {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} uppdaterade röstkanalen {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} uppdaterade webhooken {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} uppdaterade webhooken {namedTarget}." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} uppdaterade sin community-profil." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# objekt} other {# objekt}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# medlem} other {# medlemmar}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# behörighet till} other {# behörigheter till}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# gemensam community} other {# gemensamma communities}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {Visa # enhet} other {Visa # enheter}}" msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Logga ut # enhet} other {Logga ut # enheter}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {Inbjudan begränsades till # användning.} other {Inbjudan begränsades till # användningar.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {Inbjudan användes # gång.} other {Inbjudan användes # gånger.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "Kanaler i {guildName}" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Aktivitet" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Aktivitetslogg" @@ -2713,10 +3437,60 @@ msgstr "Lade till {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "Lade till {length, plural, one {# lokal filreferens} other {# lokala filreferenser}}." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "Lade till en bakgrund för chattinbäddningar." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Lade till en community-banner." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Lade till en community-ikon." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "Lade till en innehållsvarning med texten {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Lade till en innehållsvarning." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "Lade till en avatar." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Lade till en inbjudningsbakgrund." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Lade till roller." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Lade till medlemmens community-profilbild." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Lade till medlemmens community-profilbanner." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "Lade till rollen {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Justeringskontroller är bara tillgängliga på bredare skärmar" #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Alla <0/>, för alltid. Ingen fakturering, inga förnyelser." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Alla åtgärder" @@ -3001,10 +3775,12 @@ msgstr "Alla språk" msgid "All members" msgstr "Alla medlemmar" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "Alltid" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Alla användare" @@ -3197,6 +3973,16 @@ msgstr "Tillät {0} och tog bort tillåtelse för {1}." msgid "Allowed {0}." msgstr "Tillät {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "Tillät {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Tillät alla medlemmar att omnämna den här rollen." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Personer som får ringa" @@ -3205,15 +3991,35 @@ msgstr "Personer som får ringa" msgid "Allowed everyone to mention this role." msgstr "Tillät alla att nämna den här rollen." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Tillät flexibla textkanalnamn." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Tillåtna inbjudningar" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Tillät andra att klona den här communityns emojier." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Tillät andra att klona den här communityns klistermärken." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Tillåtna omdirigeringar" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Tillät upp till {count, plural, one {# anslutning} other {# anslutningar}} per medlem." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Bannlys medlemmar" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Bannlys medlemmar från communityn, med möjlighet att ta bort deras senaste meddelanden." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Anledning till bannlysning" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Blockera användare" msgid "Blocked" msgstr "Blockerade" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Blockerade medlemmen från att skicka meddelanden, reagera och ansluta till röstkanaler fram till {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Bot" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Bot tillagd" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Kategori borttagen" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Kategorin är full" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Centrera" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Centrerad" @@ -6298,11 +7116,183 @@ msgstr "Ändra ditt användarnamn" msgid "Changed nickname from {0} to {1}." msgstr "Ändrade smeknamn från {0} till {1}." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Ändrade långsamt läge från {oldDuration} till {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "Ändrade AFK-kanalen från {oldChannel} till {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "Ändrade AFK-timeouten från {oldDuration} till {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "Ändrade ljudkvaliteten från {oldKbps} kbps till {newKbps} kbps." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Ändrade avataren." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Ändrade bithastigheten till {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Ändrade blockeringen av att skicka meddelanden, reagera och ansluta till röstkanaler så att den gäller fram till {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Ändrade bakgrunden för chattinbäddningar." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Ändrade community-bannern." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Ändrade community-ikonen." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "Ändrade antalet anslutningar per medlem från {oldCount} till {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "Ändrade texten för innehållsvarning från {oldText} till {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Ändrade den anpassade rollikonen." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Ändrade den anpassade varningstexten från {oldText} till {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "Ändrade standardinställningen för aviseringar från {oldSetting} till {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Ändrade beskrivningen från {oldText} till {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Ändrade filtret för explicit innehåll från {oldFilter} till {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Ändrade justeringen av inbjudningsbakgrunden från {oldAlignment} till {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Ändrade inbjudningsbakgrunden." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "Ändrade länken från {oldUrl} till {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Ändrade medlemmens community-profilbild." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Ändrade medlemmens community-profilbanner." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "Ändrade presentationen i medlemmens communityprofil till {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "Ändrade gränsdatumet för meddelandehistorik från {oldDate} till {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "Ändrade namnet från {oldName} till {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "Ändrade smeknamnet från {oldNick} till {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Ändrade rollens färg från {oldColor} till {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Ändrade rollikonen från {oldEmoji} till {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "Ändrade systemkanalen från {oldChannel} till {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Ändrade ämnet från {oldText} till {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "Ändrade användargränsen från {oldCount} till {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "Ändrade den anpassade URL:en från {oldCode} till {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Ändrade verifieringsnivån från {oldLevel} till {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "Ändrade röstregionen från {oldRegion} till {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "kanal" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Kanal eller kategori" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Åsidosättning av kanalbehörigheter tillagd" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Åsidosättning av kanalbehörigheter borttagen" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Åsidosättning av kanalbehörigheter uppdaterad" @@ -7815,7 +8805,7 @@ msgstr "Communities med fler än 250 personer måste använda inställningen ” #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Ta bort dina meddelanden i den här konversationen?" msgid "Deleted" msgstr "Borttagen" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "Raderade {duration} av medlemmens senaste meddelandehistorik." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Borttagen text" msgid "Deleted your messages." msgstr "Dina meddelanden har raderats." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "borttagen-kategori" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "borttagen-kanal" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "borttagen-roll" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "Nekade {0} och tog bort nekande för {1}." msgid "Denied {0}." msgstr "Nekade {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "Nekade {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Inbäddningar visas" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Kloning av emojier aktiverad" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Emoji skapad" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Emoji borttagen" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Emojiplatserna är fulla" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Emoji uppdaterad" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Filtrera efter när kontot skapades" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Filtrera efter åtgärd" @@ -14572,18 +15587,22 @@ msgstr "Filtrera efter roller" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Filtrera efter användare" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Filtrera alla" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Filtrera medlemmar utan roller" @@ -15890,6 +16909,11 @@ msgstr "Gav {0} och återkallade {1}." msgid "Granted {0}." msgstr "Gav {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "Beviljade {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Hej {username}! Hoppas du får en trevlig vistelse." msgid "Hey, {username}, welcome aboard!" msgstr "Hej, {username}, välkommen ombord!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Dolde meddelanden om att någon har gått med i systemkanalen." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Dolde communityägarens krona." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Dölja din egen kamera?" msgid "Hide your own screen share?" msgstr "Dölja din egen skärmdelning?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Hög" @@ -17688,7 +18724,7 @@ msgstr "Bjud in" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "Inbjudningskoden är {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Inbjudan skapad" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Inbjudan borttagen" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Inbjudan är inte tillgänglig" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Inbjudan uppdaterad" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (vänster)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Vänsterjusterad" @@ -18745,6 +19783,11 @@ msgstr "Låt skärmläsare läsa upp nya meddelanden när de kommer in i den öp msgid "Let the community self-moderate" msgstr "Låt communityn självmoderera" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Lät medlemmen höra andra i den här communityn igen." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Låter anpassad CSS visa transparenta fönsterregioner efter omstart av datorappen." @@ -18815,6 +19858,16 @@ msgstr "Gillad." msgid "Likes: <0>{countLabel}" msgstr "Gilla-markeringar: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "Begränsade omnämnanden av den här rollen till medlemmar med behörighet att omnämna vilken roll som helst." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Begränsade kanalen till {count, plural, one {# användare} other {# användare}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Louisiana" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Låg" @@ -19204,6 +20259,11 @@ msgstr "Standard för macOS" msgid "macOS permissions" msgstr "macOS-behörigheter" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Lät kanalen ärva inställningen för vuxet innehåll." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Markerade emoji som animerad." msgid "Marked emoji as static." msgstr "Markerade emoji som statisk." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Markerade kanalen som en kanal med vuxet innehåll." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Markerade kanalen som en kanal utan vuxet innehåll." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "Markerade medlemmen som permanent." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Stoppa uppspelning" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Medel" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Medelstor (standard)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Medlem" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Medlemsåtgärder för {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Medlem bannlyst" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Medlem frånkopplad" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Medlem utsparkad" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Medlemslistor är tillfälligt otillgängliga i den här communityn" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Medlem flyttad" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Medlemmen hittades inte" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Medlemsroller uppdaterade" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Medlem sedan" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Medlemmens bannlysning hävd" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Medlem uppdaterad" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Medlemmar tas bort när de är offline om de inte har tilldelats en roll." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Medlemmar rensade" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "Medlemmar utan behörigheten {readMessageHistoryPermissionLabel} kan se meddelanden som skickats efter detta datum." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Medlemmar, valda" @@ -20077,8 +21149,10 @@ msgstr "Omnämnanden av dig visas här i {recentMentionsRetentionDays} dagar." msgid "Mentions of you show up here for {retentionDays} days." msgstr "Omnämnanden av dig visas här i {retentionDays} dagar." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Endast omnämnanden" @@ -20104,7 +21178,7 @@ msgstr "meddelande" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Meddelande" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Meddelandefelsökning" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Meddelande borttaget" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Meddelandelista för {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Meddelande fäst" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Meddelandetid" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Meddelandet lossat" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Meddelanden och medier" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Meddelanden raderade" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Moderering" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Moderatoråtgärder och ändringar i communityn visas här." @@ -20915,16 +21989,51 @@ msgstr "Flytta till" msgid "Move to…" msgstr "Flytta till…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Flyttades från {oldChannel} till {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Flyttade kanalen från kategorin {oldCategory} till kategorin {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Flyttade kanalen till kategorin {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Flyttade kanalen till kategorin {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "Flyttade rollen nedåt i medlemslistan." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "Flyttade rollen nedåt i rollistan." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Flyttade rollen till position {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "Flyttade rollen uppåt i medlemslistan." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "Flyttade rollen uppåt i rollistan." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Nytt meddelande" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Nya meddelanden" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "Inga lokala filer refereras" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Inga loggar än" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "Ingen anledning angiven" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "Ingen anledning angavs." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Ingen konvertering" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Ingen konvertering" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "OAuth2-URL-byggare" msgid "Objects" msgstr "Föremål" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Föremål" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Av" @@ -23523,6 +24636,21 @@ msgstr "Det gick inte att ladda originalmeddelandet" msgid "Original message was deleted" msgstr "Originalmeddelandet raderades" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Ursprungligen bannlyst av {user} den {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Ursprungligen bannlyst av {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Ursprungligen bannlyst den {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Pausad på grund av minskad rörelse. Aktivera för att fortsätta spela msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "Pausad på grund av minskad rörelse. Aktivera för att spela upp GIF:ar." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Pausade inbjudningar." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Radera ditt konto och all tillhörande data permanent. Den här åtgärd msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Radera permanent meddelanden du har skickat i DM-konversationer, grupp-DM-konversationer och communities. Arbetet körs i bakgrunden och du får ett DM när det är klart." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Behörighetsåsidosättning tillagd" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Behörighetsåsidosättning borttagen" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Behörighetsåsidosättning uppdaterad" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Redo att uppgradera?" msgid "Real-time" msgstr "Realtid" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Anledning" @@ -26291,26 +27440,166 @@ msgstr "Tog bort rollen {oldLabel}." msgid "Removed roles." msgstr "Roller borttagna." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "Tog bort AFK-kanalen." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Tog bort avataren." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Tog bort kanalen från dess kategori." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Tog bort kanalen från kategorin {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Tog bort bakgrunden för chattinbäddningar." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "Tog bort community-bannern." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Tog bort community-ikonen." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "Tog bort texten för innehållsvarning." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Tog bort innehållsvarningen." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Tog bort den anpassade rollikonen." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Tog bort den anpassade varningstexten." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Tog bort beskrivningen {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Tog bort inbjudningsbakgrunden." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Tog bort länken." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Tog bort medlemmens accentfärg för communityprofilen." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Tog bort medlemmens community-profilbild." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Tog bort medlemmens community-profilbanner." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Tog bort presentationen i medlemmens communityprofil." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "Tog bort medlemmens community-profilpronomen." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Tog bort gränsdatumet för meddelandehistorik." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "Tog bort smeknamnet {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "Tog bort åsidosättningen för {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "Tog bort rollen {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Tog bort rollens färg." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Tog bort rollikonen." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Tog bort regelkanalen." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "Tog bort systemkanalen." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "Tog bort timeouten." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "Tog bort ämnet {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Tog bort Unicode-emojin." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Tog bort användargränsen." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "Tog bort den anpassade URL:en {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Tog bort timeouten för {targetUserTag}" @@ -26381,6 +27670,11 @@ msgstr "Bytte namn på klistermärket till {0}." msgid "Renamed the channel to {0}." msgstr "Bytte namn på kanalen till {0}." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Bytte namn på communityn från {oldName} till {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Kräv tvåfaktorsautentisering för moderatorer innan de kan bannlysa el msgid "Required" msgstr "Obligatoriskt" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "Krävde 2FA för modereringsåtgärder." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Återställ avstånd" msgid "Reset the connection limit." msgstr "Återställde anslutningsgränsen." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "Återställde positionen i medlemslistan för rollen." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Begränsade omnämnanden av den här rollen till medlemmar med rätt beh msgid "Resubscribe" msgstr "Teckna abonnemang igen" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Återupptog inbjudningar." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Tillbaka till inloggning" @@ -27330,6 +28639,11 @@ msgstr "Återkalla den här inbjudan? Kan inte ångras." msgid "Revoked {0}." msgstr "Återkallade {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "Återkallade {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (höger)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Högerjusterad" @@ -27408,7 +28724,7 @@ msgstr "Ringsignal" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Roll" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Rollfärg" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Roll skapad" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Roll skapad" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Roll borttagen" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "Rollnamn krävs" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Roll uppdaterad" @@ -28930,11 +30246,21 @@ msgstr "Sessioner" msgid "Set {fieldNode} to {0}." msgstr "Ändrade {fieldNode} till {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Ställde in en anpassad rollikon." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Ange en anpassad status" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Ställde in en position i medlemslistan för rollen." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "Rollfärgen sattes till <0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "Ställde in långsamt läge på {0} {seconds, plural, one {sekund} other {sekunder}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Ställde in långsamt läge till {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Ange status" msgid "Set the AFK channel to {0}." msgstr "Angav AFK-kanal till {0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "Ställde in AFK-kanalen till {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "Ställde in AFK-timeouten på {0} sekunder." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "Ställde in ljudkvaliteten till {kbps} kbps." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "Ändrade kanaltypen till {0}." msgid "Set the connection limit to {0}." msgstr "Ställde in anslutningsgränsen på {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "Ställde in texten för innehållsvarning till {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "Ställde in den anpassade varningstexten till {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "Ställde in beskrivningen till {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "Ställde in inbjudningsbakgrundens justering på {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "Ställde in länken till {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "Ställde in medlemmens accentfärg för communityprofilen till {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "Ställde in presentationen i medlemmens communityprofil till {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "Ställde in medlemmens community-profilpronomen till {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "Ställde in gränsdatumet för meddelandehistorik till {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "Ställde in smeknamnet till {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Ange det offentliga produktnamnet, temafärgen och bildresurserna som klienter visar." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "Ställde in rollens färg till {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "Ställde in rollikonen till {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "Angav {0} som regelkanal." msgid "Set the system channel to {0}." msgstr "Systemkanalen har ställts in på {0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "Ställde in systemkanalen till {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "Ställde in ämnet till {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "Angav användargränsen till {0}." msgid "Set the vanity URL to {0}." msgstr "Ställde in den anpassade URL:en på {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "Ställde in den anpassade URL:en till {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "Ställde in röstregionen till {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "Ställde in röstregionen till automatisk." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Visa din globala profilbanner i den här communityn" msgid "Show your Visionary as a regular subscription instead" msgstr "Visa ditt Visionary som ett vanligt abonnemang i stället" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Visade medlemmar med den här rollen i ett eget avsnitt i medlemslistan." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Något gick fel när vi skulle utfärda din återbetalning. Kontakta supporten om detta fortsätter att hända." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Något gick fel när aktivitetshistoriken skulle laddas." @@ -31105,6 +32531,11 @@ msgstr "Starta röstsamtal" msgid "Start with computer" msgstr "Starta med datorn" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "Började visa medlemmar med den här rollen separat." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "klistermärke" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "Klistermärket kunde inte komprimeras tillräckligt" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Klistermärke skapat" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Klistermärke borttaget" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Klistermärkesplatserna är fulla" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Klistermärke uppdaterat" @@ -31412,6 +32843,46 @@ msgstr "Sluta titta på sändning" msgid "Stop." msgstr "Stoppa." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Slutade tillåta flexibla textkanalnamn." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Slutade tillåta andra att klona den här communityns emojier." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Slutade tillåta andra att klona den här communityns klistermärken." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Slutade visa medlemmar med den här rollen separat." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Slutade dölja meddelanden om att någon har gått med i systemkanalen." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Slutade dölja communityägarens krona." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Slutade kräva tvåfaktorsautentisering för modereringsåtgärder." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Hindrade medlemmen från att höra andra i den här communityn." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Synka med kategori" msgid "Syntax highlighting" msgstr "Syntaxmarkering" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "System" @@ -32449,6 +33922,16 @@ msgstr "Appen har kraschat. Söker efter uppdateringar som kan lösa problemet msgid "The app should now be signed in to your account." msgstr "Du bör nu vara inloggad på ditt konto i appen." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "Bannlysningen hade redan löpt ut den {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "Bannlysningen skulle ha upphört den {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "Boten har lagts till i <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "Uppdateringen för datorappen har laddats ner. Starta om {productName} f msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "Den nedladdade filen sparas på din dator. Installera den med din vanliga pakethanterare." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "Emojin laddades upp av {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "Filen innehåller verifieringstoken som vi hämtar från <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "Filen du försöker ladda upp överskrider den maximala storleksgränsen msgid "The following people can't be added to this group DM:" msgstr "Följande personer kan inte läggas till i den här grupp-DM-konversationen:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "Inbjudan skapades av {user} den {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "Inbjudan skapades av {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "Inbjudan skapades den {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "Inbjudan användes aldrig." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "Inbjudan skulle gå ut den {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "Inbjudan ställdes in för att tillåta obegränsat antal användningar." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "Inbjudan ställdes in för att gå ut efter {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "Inbjudan ställdes in för att ge tillfälligt medlemskap." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "Inbjudan ställdes in för att aldrig löpa ut." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "Språket som de flesta i din community talar. Används för att filtrera resultat i Upptäck." @@ -32518,6 +34051,11 @@ msgstr "Länken kan fortfarande fungera. Försök igen om en liten stund." msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "Kontrollen för vuxet innehåll avbröts. Du kan stänga fliken och försöka igen från appen." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "Medlemmen är inte längre tillfällig." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "Det nya priset är redan schemalagt för {effectiveDate}." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "Den nya röstkanalen kommer att återanvända behörigheterna, användargränsen och bithastigheten från <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "Åsidosättningen tillät {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "Åsidosättningen nekade {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "Sidan du letar efter finns inte eller har flyttats." @@ -32565,6 +34113,11 @@ msgstr "Den angivna redirect_uri är inte registrerad för den här appen." msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "Den angivna redirect_uri måste använda HTTP eller HTTPS." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "Rollen gav {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "Klistermärket laddades upp som animerat." msgid "The sticker was uploaded as static." msgstr "Klistermärket laddades upp som statiskt." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "Klistermärket laddades upp av {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "Systemet gav {target} rollen {role}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "Systemet tog bort rollen {role} från {target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "Användarnamnet <0>{fluxerTag} används redan. Om du fortsätter kom msgid "The verification code is invalid or expired." msgstr "Verifieringskoden är ogiltig eller har gått ut." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "Webhooken skapades av {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Det här kortet matchar inte ditt faktureringsland, så det kan inte användas för den här lokala valutan. Använd ett lokalt kort, eller återgå till {productName} och välj en annan betalningsmetod." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "Den här kategorin innehåller redan det maximala antalet kanaler: {maxChannelsPerCategory}." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Spåra moderatoråtgärder i hela communityn." @@ -33953,6 +35526,11 @@ msgstr "Överför gruppägarskapet till {userName}?" msgid "Transfer ownership" msgstr "Överför ägarskap" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Överförde community-ägarskap till {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Aktivera sekretess vid sändning" msgid "Turn text smileys into emoji" msgstr "Ersätt textsmileys med emojier" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Stängde av vuxet innehåll." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Stängde av långsamt läge." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "Stängde av innehållsvarningen." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Stängde av den fristående bannern." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Stängde av medlemmens mikrofon i den här communityn." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Aktiverade vuxet innehåll." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "Aktiverade innehållsvarningen." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Aktiverade den fristående bannern." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "Slog på medlemmens mikrofon igen i den här communityn." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Om du inaktiverar behörighetsomfång kan appen sluta fungera korrekt." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "Ukrainska" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Kunde inte ladda aktivitetshistoriken" @@ -34859,6 +36482,7 @@ msgstr "Okänt mål" msgid "unknown user" msgstr "okänd användare" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "okänd användare" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Används endast i den här communityn." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Vermont" msgid "Version" msgstr "Version" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Mycket hög" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Webbkamera" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Webhook skapad" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhook borttagen" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Webhooknamn" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhook uppdaterad" diff --git a/fluxer_app/src/features/i18n/locales/th/messages.po b/fluxer_app/src/features/i18n/locales/th/messages.po index a52c0ddc9..e752968d8 100644 --- a/fluxer_app/src/features/i18n/locales/th/messages.po +++ b/fluxer_app/src/features/i18n/locales/th/messages.po @@ -56,6 +56,31 @@ msgstr "{a} กำลังพิมพ์..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} และ {c} กำลังพิมพ์..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} เพิ่มการตั้งค่าสิทธิ์สำหรับ {user} ใน {channel}" + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} เพิ่มการตั้งค่าสิทธิ์สำหรับ @everyone ใน {channel}" + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} เพิ่มการตั้งค่าสิทธิ์สำหรับบทบาท {role} ใน {channel}" + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} เพิ่มสติกเกอร์" + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} เพิ่มอิโมจิ" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} เพิ่มสิทธิ์ช่องสำหรับ {targetEntity} ใน {channelNode}" @@ -64,35 +89,200 @@ msgstr "{actor} เพิ่มสิทธิ์ช่องสำหรับ msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} เพิ่มสิทธิ์ช่องสำหรับ {targetEntity}" +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} เพิ่มบอท {target} เป็นสมาชิกชั่วคราว" + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} เพิ่มบอท {target}" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} เพิ่มบอท {targetMember}" +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} เพิ่มอิโมจิ {emoji}" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} เพิ่มอิโมจิ {namedTarget}" +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} เพิ่มสติกเกอร์ {name}" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} เพิ่มสติกเกอร์ {namedTarget}" +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} แบน {target} เป็นเวลา {duration}" + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} แบน {target}" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} แบน {targetMember}" +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} เปลี่ยนการระงับการส่งข้อความ การแสดงรีแอ็กชัน และการเข้าร่วมช่องเสียงของ {target} ให้สิ้นสุดในวันที่ {date}" + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} เปลี่ยนชื่อเล่นของ {target} จาก {oldNick} เป็น {newNick}" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} เปลี่ยนการตั้งค่าสิทธิ์ของหมวดหมู่ {channel}" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} เปลี่ยนการตั้งค่าสิทธิ์ของช่อง {channel}" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} เปลี่ยนการตั้งค่าสิทธิ์ของช่องลิงก์ {channel}" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} เปลี่ยนการตั้งค่าสิทธิ์ของช่องข้อความ {channel}" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} เปลี่ยนการตั้งค่าสิทธิ์ของช่องเสียง {channel}" + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} เปลี่ยน URL ที่กำหนดเองจาก {oldCode} เป็น {newCode}" + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} เปลี่ยนรูปโปรไฟล์ในโปรไฟล์คอมมูนิตี้ของตนเอง" + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} เปลี่ยนแบนเนอร์ในโปรไฟล์คอมมูนิตี้ของตนเอง" + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} เปลี่ยนประวัติส่วนตัวในโปรไฟล์คอมมูนิตี้ของตนเองเป็น {text}" + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} เปลี่ยนชื่อเล่นของตนเองจาก {oldNick} เป็น {newNick}" + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} สร้าง webhook" + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} สร้างหมวดหมู่ {channel}" + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} สร้างช่อง {channel} ใน {category}" + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} สร้างช่อง {channel}" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} สร้างช่อง {namedTarget}" +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} สร้างลิงก์เชิญ {code} สำหรับ {channel}" + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} สร้างลิงก์เชิญ {code}" + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} สร้างคำเชิญ {namedTarget}{0}" +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} สร้างช่องลิงก์ {channel} ใน {category}" + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} สร้างช่องลิงก์ {channel}" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} สร้างบทบาท {namedTarget}" +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} สร้างบทบาท {role}" + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} สร้างช่องข้อความ {channel} ใน {category}" + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} สร้างช่องข้อความ {channel}" + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} สร้างช่องเสียง {channel} ใน {category}" + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} สร้างช่องเสียง {channel}" + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} สร้าง webhook {name} ใน {channel}" + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} สร้าง webhook {name}" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} สร้าง webhook {namedTarget}" @@ -103,49 +293,209 @@ msgstr "{actor} สร้าง webhook {namedTarget}" msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} ลบข้อความ {0} {bulkCount, plural, one {รายการ} other {รายการ}}{1}" +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} ลบข้อความ {count, plural, one {# ข้อความ} other {# ข้อความ}} ใน {channel}" + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} ลบข้อความไป {count, plural, one {# ข้อความ} other {# ข้อความ}}" + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} ลบข้อความใน {channel} แล้ว" + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} ลบข้อความ" + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} ลบข้อความ{0}" +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} ลบสติกเกอร์" + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} ลบ webhook แล้ว" + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} ลบอิโมจิ" + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} ลบหลายข้อความ{0}" +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} ลบข้อความบางส่วนใน {channel}" + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} ลบข้อความบางส่วน" + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} ลบหมวดหมู่ {channel} แล้ว" + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} ลบช่อง {channel} แล้ว" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} ลบช่อง {namedTarget}" +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} ลบอิโมจิ {emoji} แล้ว" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} ลบอิโมจิ {namedTarget}" +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} ลบคำเชิญ {code} สำหรับ {channel} แล้ว" + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} ลบคำเชิญ {code} แล้ว" + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} ลบคำเชิญ {namedTarget}{0}" +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} ลบช่องลิงก์ {channel} แล้ว" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} ลบบทบาท {namedTarget}" +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} ลบบทบาท {role} แล้ว" + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} ลบสติกเกอร์ {name} แล้ว" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} ลบสติกเกอร์ {namedTarget}" +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} ลบช่องข้อความ {channel} แล้ว" + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} ลบช่องเสียง {channel} แล้ว" + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} ลบ webhook {name} ออกจาก {channel} แล้ว" + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} ลบ webhook {name} แล้ว" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} ลบ webhook {namedTarget}" +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} ตัดการเชื่อมต่อ {target} ออกจาก {channel}" + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} ตัดการเชื่อมต่อ {target} ออกจากช่องเสียง" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} ตัดการเชื่อมต่อ {targetMember} ออกจากช่องเสียง" +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} ออกจาก {channel} แล้ว" + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} ออกจากช่องเสียงแล้ว" + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} ให้บทบาท {role} แก่ {target}" + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} เตะ {target} ออก" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} เตะ {targetMember} ออก" +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} ให้ {target} ได้ยินผู้อื่นในคอมมูนิตี้นี้อีกครั้ง" + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} ทำการเปลี่ยนแปลงที่แอปเวอร์ชันนี้ไม่สามารถแสดงได้" + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} ย้าย {target} ออกจาก {oldChannel} ไปยัง {newChannel}" + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} ย้าย {target} ไปยัง {channel}" + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} ย้าย {target} ไปยังช่องเสียงอื่น" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} ย้าย {targetMember} ไปที่ {channelNode}" @@ -154,16 +504,68 @@ msgstr "{actor} ย้าย {targetMember} ไปที่ {channelNode}" msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} ย้าย {targetMember} ไปยังช่องเสียงอื่น" +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} ย้ายจาก {oldChannel} ไปยัง {newChannel}" + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} ย้ายบทบาท {role} ลงในรายการสมาชิก" + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} ย้ายบทบาท {role} ลงในรายการบทบาท" + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} เลื่อนบทบาท {role} ขึ้นในรายการสมาชิก" + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} เลื่อนบทบาท {role} ขึ้นในรายการบทบาท" + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} ย้ายไปที่ {channel}" + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} ย้ายไปยังช่องเสียงอื่น" + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} หยุดรับคำเชิญชั่วคราว" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} ดำเนินการตรวจสอบกับ {targetEntity}" +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} ปักหมุดข้อความใน {channel}" + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} ปักหมุดข้อความ" + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} ปักหมุดข้อความ{0}" +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} ลบสมาชิกที่ไม่มีการเคลื่อนไหวออก" @@ -179,19 +581,249 @@ msgstr "{actor} นำสิทธิ์ช่องของ {targetEntity} อ msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} นำสิทธิ์ช่องของ {targetEntity} ออก" +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} ลบชื่อเล่น {nick} ออกจาก {target} แล้ว" + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} นำการตั้งค่าสิทธิ์สำหรับ {user} ออกจาก {channel} แล้ว" + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} นำการตั้งค่าสิทธิ์สำหรับ @everyone ออกจาก {channel} แล้ว" + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} นำการตั้งค่าสิทธิ์ที่กำหนดเองสำหรับบทบาท {role} ออกจาก {channel} แล้ว" + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} นำบทบาท {role} ออกจาก {target} แล้ว" + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} ยกเลิกการพักการใช้งานชั่วคราวของ {target}" + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} ลบ URL ที่กำหนดเอง {code} แล้ว" + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} ลบสีเน้นในโปรไฟล์คอมมูนิตี้ของตนเอง" + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} ลบรูปโปรไฟล์ในโปรไฟล์คอมมูนิตี้ของตนเอง" + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} ลบแบนเนอร์ในโปรไฟล์คอมมูนิตี้ของตนเอง" + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} ลบประวัติส่วนตัวในโปรไฟล์คอมมูนิตี้ของตนเอง" + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} ลบคำสรรพนามในโปรไฟล์คอมมูนิตี้ของตนเอง" + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} ลบชื่อเล่นของตนเอง {nick} ออกแล้ว" + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} เปลี่ยนชื่อหมวดหมู่ {oldName} เป็น {newName}" + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} เปลี่ยนชื่อช่อง {oldName} เป็น {newName}" + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} เปลี่ยนชื่อคอมมูนิตี้จาก {oldName} เป็น {newName}" + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} เปลี่ยนชื่ออิโมจิ {oldEmoji} เป็น {newEmoji}" + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} เปลี่ยนชื่อช่องลิงก์จาก {oldName} เป็น {newName}" + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} เปลี่ยนชื่อบทบาทจาก {oldName} เป็น {newName}" + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} เปลี่ยนชื่อสติกเกอร์ {oldName} เป็น {newName}" + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} เปลี่ยนชื่อช่องข้อความ {oldName} เป็น {newName}" + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} เปลี่ยนชื่อช่องเสียงจาก {oldName} เป็น {newName}" + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} เปลี่ยนชื่อ webhook จาก {oldName} เป็น {newName}" + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} รีเซ็ตตำแหน่งในรายการสมาชิกสำหรับบทบาท {role}" + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} เปิดใช้งานการเชิญอีกครั้ง" + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} ตั้งค่าตำแหน่งในรายการสมาชิกสำหรับบทบาท {role}" + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} ตั้งชื่อเล่นของ {target} เป็น {nick}" + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} ตั้งค่า URL แบบกำหนดเองเป็น {code}" + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} ตั้งค่าสีเน้นในโปรไฟล์คอมมูนิตี้ของตนเองเป็น {color}" + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} ตั้งค่ารูปโปรไฟล์ในโปรไฟล์คอมมูนิตี้ของตนเอง" + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} ตั้งค่าแบนเนอร์ในโปรไฟล์คอมมูนิตี้ของตนเอง" + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} ตั้งค่าประวัติส่วนตัวในโปรไฟล์คอมมูนิตี้ของตนเองเป็น {text}" + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} ตั้งค่าคำสรรพนามในโปรไฟล์คอมมูนิตี้ของตนเองเป็น {text}" + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} ตั้งชื่อเล่นของตนเองเป็น {nick}" + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} หยุดไม่ให้ {target} ได้ยินผู้อื่นในคอมมูนิตี้นี้" + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} พักการใช้งาน {target} จนถึงวันที่ {date}" + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} โอนความเป็นเจ้าของคอมมูนิตี้ให้กับ {user}" + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} เปิดไมโครโฟนของ {target} อีกครั้งในคอมมูนิตี้นี้" + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} ปิดไมโครโฟนของ {target} ในคอมมูนิตี้นี้" + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} ปลดแบน {target} แล้ว" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} ยกเลิกแบน {targetMember}" +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} ยกเลิกการปักหมุดข้อความใน {channel}" + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} ยกเลิกการปักหมุดข้อความ" + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} ยกเลิกการปักหมุดข้อความ{0}" +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} อัปเดต {target}" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} อัปเดต {targetMember}" +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} อัปเดตสติกเกอร์" + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} อัปเดต webhook" + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} อัปเดตอิโมจิ" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} อัปเดตสิทธิ์ช่องสำหรับ {targetEntity} ใน {channelNode}" @@ -204,35 +836,112 @@ msgstr "{actor} อัปเดตสิทธิ์ช่องสำหรั msgid "{actor} updated roles for {targetMember}." msgstr "{actor} อัปเดตบทบาทของ {targetMember}" +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} อัปเดตหมวดหมู่ {channel}" + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} อัปเดตช่อง {channel}" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} อัปเดตช่อง {namedTarget}" +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} อัปเดตการตั้งค่าคอมมูนิตี้" +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} อัปเดตรูปอิโมจิ {emoji}" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} อัปเดตอิโมจิ {namedTarget}" +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} อัปเดตคำเชิญ {code}" + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} อัปเดตคำเชิญ {namedTarget}{0}" +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} อัปเดตช่องลิงก์ {channel}" + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} อัปเดตการตั้งค่าสิทธิ์สำหรับ {user} ใน {channel}" + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} อัปเดตการตั้งค่าสิทธิ์สำหรับ @everyone ใน {channel}" + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} อัปเดตการตั้งค่าสิทธิ์สำหรับบทบาท {role} ใน {channel}" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} อัปเดตบทบาท {namedTarget}" +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} อัปเดตบทบาท {role}" + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} อัปเดตบทบาทของ {target}" + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} อัปเดตสติกเกอร์ {name}" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} อัปเดตสติกเกอร์ {namedTarget}" +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} อัปเดตช่องข้อความ {channel}" + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} อัปเดตช่องเสียง {channel}" + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} อัปเดต webhook {name}" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} อัปเดต webhook {namedTarget}" +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} อัปเดตโปรไฟล์ของตนเองในคอมมูนิตี้" + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# รายการ} other {# รายการ}} msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {สมาชิก # คน} other {สมาชิก # คน}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# สิทธิ์เพิ่มเติม} other {# สิทธิ์เพิ่มเติม}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# คอมมูนิตี้ร่วมกัน} other {# คอมมูนิตี้ร่วมกัน}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {แสดงอุปกรณ์ # เครื่ msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {ออกจากระบบอุปกรณ์ # เครื่อง} other {ออกจากระบบอุปกรณ์ # เครื่อง}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {ลิงก์นี้จำกัดการใช้งานไว้ที่ # ครั้ง} other {ลิงก์นี้จำกัดการใช้งานไว้ที่ # ครั้ง}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {ลิงก์นี้ถูกใช้ไปแล้ว # ครั้ง} other {ลิงก์นี้ถูกใช้ไปแล้ว # ครั้ง}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "ช่องของ {guildName}" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "กิจกรรม" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "บันทึกกิจกรรม" @@ -2713,10 +3437,60 @@ msgstr "เพิ่ม {0} แล้ว" msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "เพิ่มการอ้างอิงไฟล์ในเครื่องแล้ว {length, plural, one {# รายการ} other {# รายการ}}" +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "เพิ่มพื้นหลังการฝังแชทแล้ว" + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "เพิ่มแบนเนอร์คอมมูนิตี้แล้ว" + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "เพิ่มไอคอนคอมมูนิตี้แล้ว" + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "เพิ่มคำเตือนเนื้อหาพร้อมข้อความ {text}" + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "เพิ่มคำเตือนเนื้อหา" + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "เพิ่มรูปโปรไฟล์แล้ว" + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "เพิ่มพื้นหลังคำเชิญ" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "เพิ่มบทบาทแล้ว" +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "เพิ่มรูปโปรไฟล์ในโปรไฟล์คอมมูนิตี้ของสมาชิกแล้ว" + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "เพิ่มแบนเนอร์ในโปรไฟล์คอมมูนิตี้ของสมาชิกแล้ว" + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "เพิ่มบทบาท {role} แล้ว" + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "การควบคุมการจัดเรียงมีให #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "<0/> ทั้งหมด ตลอดไป ไม่มีการเรียกเก็บเงิน ไม่มีการต่ออายุ" #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "ทุกการกระทำ" @@ -3001,10 +3775,12 @@ msgstr "ทุกภาษา" msgid "All members" msgstr "สมาชิกทั้งหมด" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "ทุกช่วงเวลา" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "ผู้ใช้ทั้งหมด" @@ -3197,6 +3973,16 @@ msgstr "อนุญาต {0} และนำการอนุญาตสำ msgid "Allowed {0}." msgstr "อนุญาต {0} แล้ว" +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "ได้รับอนุญาตให้ใช้ {permissions}" + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "อนุญาตให้สมาชิกทุกคนกล่าวถึงบทบาทนี้ได้" + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "ผู้ที่โทรหาคุณได้" @@ -3205,15 +3991,35 @@ msgstr "ผู้ที่โทรหาคุณได้" msgid "Allowed everyone to mention this role." msgstr "อนุญาตให้ทุกคนกล่าวถึงบทบาทนี้แล้ว" +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "อนุญาตให้ตั้งชื่อช่องข้อความได้หลากหลาย" + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "ผู้ที่เชิญคุณได้" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "อนุญาตให้ผู้อื่นโคลนอิโมจิของคอมมูนิตี้นี้ได้" + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "อนุญาตให้ผู้อื่นโคลนสติกเกอร์ของคอมมูนิตี้นี้ได้" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "การเปลี่ยนเส้นทางที่อนุญาต" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "อนุญาตสูงสุด {count, plural, one {# การเชื่อมต่อ} other {# การเชื่อมต่อ}} ต่อสมาชิก" + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "แบนสมาชิก" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "แบนสมาชิกออกจากคอมมูนิตี้ พร้อมตัวเลือกในการลบข้อความล่าสุดของพวกเขา" +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "เหตุผลในการแบน" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "บล็อกผู้ใช้" msgid "Blocked" msgstr "ถูกบล็อก" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "ระงับไม่ให้สมาชิกส่งข้อความ แสดงรีแอ็กชัน และเข้าร่วมช่องเสียงจนถึง {date}" + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "บอท" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "เพิ่มบอทแล้ว" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "ลบหมวดหมู่แล้ว" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "หมวดหมู่เต็ม" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "กึ่งกลาง" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "จัดกึ่งกลาง" @@ -6298,11 +7116,183 @@ msgstr "เปลี่ยนชื่อผู้ใช้" msgid "Changed nickname from {0} to {1}." msgstr "เปลี่ยนชื่อเล่นจาก {0} เป็น {1}" +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "เปลี่ยนโหมดจำกัดเวลาจาก {oldDuration} เป็น {newDuration}" + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "เปลี่ยนช่อง AFK จาก {oldChannel} เป็น {newChannel}" + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "เปลี่ยนระยะเวลารอ AFK จาก {oldDuration} เป็น {newDuration}" + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "เปลี่ยนคุณภาพเสียงจาก {oldKbps} kbps เป็น {newKbps} kbps" + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "เปลี่ยนรูปโปรไฟล์" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "เปลี่ยนบิตเรตเป็น {0}" +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "เปลี่ยนการระงับการส่งข้อความ การแสดงรีแอ็กชัน และการเข้าร่วมช่องเสียง ให้สิ้นสุดในวันที่ {date}" + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "เปลี่ยนพื้นหลังการฝังแชท" + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "เปลี่ยนแบนเนอร์โปรไฟล์ในคอมมูนิตี้" + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "เปลี่ยนไอคอนคอมมูนิตี้แล้ว" + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "เปลี่ยนการเชื่อมต่อต่อสมาชิกจาก {oldCount} เป็น {newCount}" + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "เปลี่ยนข้อความคำเตือนเนื้อหาจาก {oldText} เป็น {newText}" + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "เปลี่ยนไอคอนบทบาทที่กำหนดเอง" + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "เปลี่ยนข้อความคำเตือนที่กำหนดเองจาก {oldText} เป็น {newText}" + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "เปลี่ยนการตั้งค่าการแจ้งเตือนเริ่มต้นจาก {oldSetting} เป็น {newSetting}" + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "เปลี่ยนคำอธิบายจาก {oldText} เป็น {newText}" + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "เปลี่ยนการตั้งค่าตัวกรองเนื้อหาที่โจ่งแจ้งจาก {oldFilter} เป็น {newFilter}" + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "เปลี่ยนการจัดแนวรูปพื้นหลังคำเชิญจาก {oldAlignment} เป็น {newAlignment}" + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "เปลี่ยนรูปพื้นหลังคำเชิญ" + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "เปลี่ยนลิงก์จาก {oldUrl} เป็น {newUrl}" + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "เปลี่ยนรูปโปรไฟล์ในโปรไฟล์คอมมูนิตี้ของสมาชิก" + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "เปลี่ยนแบนเนอร์ในโปรไฟล์คอมมูนิตี้ของสมาชิก" + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "เปลี่ยนประวัติส่วนตัวในโปรไฟล์คอมมูนิตี้ของสมาชิกเป็น {text}" + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "เปลี่ยนเกณฑ์ประวัติข้อความจาก {oldDate} เป็น {newDate}" + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "เปลี่ยนชื่อจาก {oldName} เป็น {newName}" + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "เปลี่ยนชื่อเล่นจาก {oldNick} เป็น {newNick}" + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "เปลี่ยนสีบทบาทจาก {oldColor} เป็น {newColor}" + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "เปลี่ยนไอคอนบทบาทจาก {oldEmoji} เป็น {newEmoji}" + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "เปลี่ยนช่องระบบจาก {oldChannel} เป็น {newChannel}" + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "เปลี่ยนหัวข้อจาก {oldText} เป็น {newText}" + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "เปลี่ยนขีดจำกัดผู้ใช้จาก {oldCount} เป็น {newCount}" + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "เปลี่ยน URL ที่กำหนดเองจาก {oldCode} เป็น {newCode}" + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "เปลี่ยนระดับการยืนยันจาก {oldLevel} เป็น {newLevel}" + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "เปลี่ยนภูมิภาคเสียงจาก {oldRegion} เป็น {newRegion}" + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "ช่อง" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "ช่องหรือหมวดหมู่" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "เพิ่มการแทนที่สิทธิ์ช่อง" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "ลบการแทนที่สิทธิ์ช่อง" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "อัปเดตการแทนที่สิทธิ์ช่อง" @@ -7815,7 +8805,7 @@ msgstr "คอมมูนิตี้ที่มีสมาชิกมาก #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "ลบข้อความของคุณในการสนทน msgid "Deleted" msgstr "ลบแล้ว" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "ลบประวัติข้อความล่าสุดของสมาชิกในช่วง {duration}" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "ข้อความที่ถูกลบ" msgid "Deleted your messages." msgstr "ลบข้อความของคุณแล้ว" +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "หมวดหมู่ที่ถูกลบ" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "ช่องที่ถูกลบ" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "บทบาทที่ถูกลบ" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "ปฏิเสธ {0} และนำการปฏิเสธสำ msgid "Denied {0}." msgstr "ปฏิเสธ {0} แล้ว" +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "ปฏิเสธ {permissions}" + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "เปิดการแสดงตัวอย่างแล้ว" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "เปิดใช้งานการโคลนอิโมจิแล้ว" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "สร้างอิโมจิแล้ว" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "ลบอิโมจิแล้ว" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "ช่องอิโมจิเต็ม" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "อัปเดตอิโมจิแล้ว" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "กรองตามวันที่สร้างบัญชี" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "กรองตามการกระทำ" @@ -14572,18 +15587,22 @@ msgstr "กรองตามบทบาท" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "กรองตามผู้ใช้" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "กรองทุกคน" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "กรองสมาชิกที่ไม่มีบทบาท" @@ -15890,6 +16909,11 @@ msgstr "ให้สิทธิ์ {0} และเพิกถอน {1}" msgid "Granted {0}." msgstr "ให้สิทธิ์ {0} แล้ว" +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "ได้รับสิทธิ์ {permissions} แล้ว" + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "สวัสดี {username}! ขอให้สนุกกับก msgid "Hey, {username}, welcome aboard!" msgstr "สวัสดี {username} ยินดีต้อนรับ!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "ซ่อนข้อความการเข้าร่วมในช่องระบบ" + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "ซ่อนมงกุฎเจ้าของคอมมูนิตี้" + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "ซ่อนกล้องของคุณหรือไม่" msgid "Hide your own screen share?" msgstr "ซ่อนการแชร์หน้าจอของคุณหรือไม่" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "สูง" @@ -17688,7 +18724,7 @@ msgstr "เชิญ" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "รหัสเชิญคือ {0}" #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "สร้างคำเชิญแล้ว" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "ลบคำเชิญแล้ว" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "คำเชิญไม่พร้อมใช้งาน" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "อัปเดตคำเชิญแล้ว" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (ซ้าย)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "จัดชิดซ้าย" @@ -18745,6 +19783,11 @@ msgstr "ให้โปรแกรมอ่านหน้าจอประก msgid "Let the community self-moderate" msgstr "ให้คอมมูนิตี้จัดการกันเอง" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "ให้สมาชิกได้ยินผู้อื่นในคอมมูนิตี้นี้อีกครั้ง" + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "ให้ CSS ที่กำหนดเองแสดงพื้นที่หน้าต่างโปร่งใสหลังจากรีสตาร์ทแอปเดสก์ท็อป" @@ -18815,6 +19858,16 @@ msgstr "ถูกใจแล้ว" msgid "Likes: <0>{countLabel}" msgstr "ถูกใจ: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "จำกัดการกล่าวถึงบทบาทนี้ไว้สำหรับสมาชิกที่ได้รับอนุญาตให้กล่าวถึงบทบาทใดๆ" + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "จำกัดช่องไว้ที่ผู้ใช้ {count, plural, one {# คน} other {# คน}}" + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "ลุยเซียนา" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "ต่ำ" @@ -19204,6 +20259,11 @@ msgstr "ค่าเริ่มต้นของ macOS" msgid "macOS permissions" msgstr "สิทธิ์ของ macOS" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "ตั้งค่าให้ช่องสืบทอดการตั้งค่าเนื้อหาสำหรับผู้ใหญ่" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "ตั้งค่าอิโมจิเป็นภาพเคลื msgid "Marked emoji as static." msgstr "ตั้งค่าอิโมจิเป็นแบบคงที่" +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "ตั้งค่าให้ช่องนี้มีเนื้อหาสำหรับผู้ใหญ่" + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "ตั้งค่าช่องนี้ว่าไม่มีเนื้อหาสำหรับผู้ใหญ่" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "ตั้งค่าสมาชิกเป็นถาวร" @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "หยุดเล่น" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "ปานกลาง" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "ขนาดกลาง (ค่าเริ่มต้น)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "สมาชิก" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "การดำเนินการกับสมาชิก {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "แบนสมาชิกแล้ว" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "ตัดการเชื่อมต่อสมาชิกแล้ว" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "เตะสมาชิกออกแล้ว" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "ขณะนี้ยังไม่สามารถดูรายชื่อสมาชิกในคอมมูนิตี้นี้ได้" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "ย้ายสมาชิกแล้ว" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "ไม่พบสมาชิก" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "อัปเดตบทบาทสมาชิกแล้ว" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "สมาชิกตั้งแต่" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "ยกเลิกแบนสมาชิกแล้ว" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "อัปเดตสมาชิกแล้ว" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "สมาชิกจะถูกนำออกเมื่อออฟไลน์ เว้นแต่จะได้รับบทบาท" #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "ลบสมาชิกที่ไม่มีการเคลื่อนไหวแล้ว" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "สมาชิกที่ไม่มีสิทธิ์ {readMessageHistoryPermissionLabel} จะสามารถดูข้อความที่ส่งหลังจากวันที่นี้ได้" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "สมาชิกที่เลือก" @@ -20077,8 +21149,10 @@ msgstr "การกล่าวถึงคุณจะแสดงที่น msgid "Mentions of you show up here for {retentionDays} days." msgstr "การกล่าวถึงคุณจะแสดงที่นี่เป็นเวลา {retentionDays} วัน" +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "เฉพาะเมื่อถูกกล่าวถึง" @@ -20104,7 +21178,7 @@ msgstr "ข้อความ" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "ข้อความ" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "แก้ไขข้อผิดพลาดข้อความ" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "ลบข้อความแล้ว" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "รายการข้อความสำหรับ {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "ปักหมุดข้อความแล้ว" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "เวลาของข้อความ" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "เลิกปักหมุดข้อความแล้ว" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "ข้อความและสื่อ" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "ลบข้อความหลายรายการแล้ว" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "การดูแล" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "การดำเนินการดูแลและการเปลี่ยนแปลงคอมมูนิตี้จะแสดงที่นี่" @@ -20915,16 +21989,51 @@ msgstr "ย้ายไปที่" msgid "Move to…" msgstr "ย้ายไปที่…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "ย้ายจาก {oldChannel} ไปยัง {newChannel}" + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "ย้ายช่องจากหมวดหมู่ {oldCategory} ไปยังหมวดหมู่ {newCategory}" + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "ย้ายช่องไปยังหมวดหมู่ {category}" + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "ย้ายช่องไปยังหมวดหมู่ {0}" +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "ย้ายบทบาทลงในรายการสมาชิก" + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "ย้ายบทบาทลงในรายการบทบาท" + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "ย้ายบทบาทไปที่ตำแหน่งที่ {0}" +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "ย้ายบทบาทขึ้นในรายการสมาชิก" + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "ย้ายบทบาทขึ้นในรายการบทบาท" + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "ข้อความใหม่" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "ข้อความใหม่" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "ไม่มีไฟล์ในเครื่องที่อ้างอิงถึง" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "ยังไม่มีบันทึก" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "ไม่ได้ระบุเหตุผล" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "ไม่ได้ระบุเหตุผล" @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "ไม่แปลง" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "ไม่แปลง" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "เครื่องมือสร้าง URL สำหรับ OAu msgid "Objects" msgstr "สิ่งของ" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "สิ่งของ" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "ปิด" @@ -23523,6 +24636,21 @@ msgstr "ไม่สามารถโหลดข้อความต้นฉ msgid "Original message was deleted" msgstr "ข้อความต้นฉบับถูกลบแล้ว" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "ถูกแบนโดย {user} เมื่อวันที่ {date}" + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "ถูกแบนโดย {user}" + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "ถูกแบนครั้งแรกเมื่อ {date}" + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "หยุดชั่วคราวเนื่องจากโหม msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "หยุดชั่วคราวเนื่องจากโหมดลดการเคลื่อนไหว เปิดเพื่อให้ GIF เล่นต่อ" +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "ระงับการเชิญ" + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "ลบบัญชีและข้อมูลทั้งหมดท msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "ลบข้อความที่คุณส่งในข้อความส่วนตัว แชทกลุ่ม และคอมมูนิตี้อย่างถาวร การดำเนินการนี้จะทำงานเบื้องหลัง และคุณจะได้รับข้อความส่วนตัวแจ้งเมื่อเสร็จสิ้น" +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "เพิ่มการแทนที่สิทธิ์" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "ลบการแทนที่สิทธิ์" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "อัปเดตการแทนที่สิทธิ์" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "พร้อมจะอัปเกรดหรือยัง?" msgid "Real-time" msgstr "เรียลไทม์" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "เหตุผล" @@ -26291,26 +27440,166 @@ msgstr "ลบบทบาท {oldLabel} แล้ว" msgid "Removed roles." msgstr "ลบบทบาทแล้ว" +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "ลบช่อง AFK แล้ว" + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "ลบรูปโปรไฟล์แล้ว" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "นำช่องออกจากหมวดหมู่แล้ว" +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "นำช่องออกจากหมวดหมู่ {category} แล้ว" + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "ลบพื้นหลังการฝังแชทแล้ว" + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "ลบแบนเนอร์โปรไฟล์ในคอมมูนิตี้แล้ว" + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "ลบไอคอนคอมมูนิตี้แล้ว" + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "ลบข้อความคำเตือนเนื้อหาแล้ว" + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "ลบคำเตือนเนื้อหาแล้ว" + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "ลบไอคอนบทบาทที่กำหนดเองแล้ว" + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "ลบข้อความคำเตือนที่กำหนดเองแล้ว" + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "ลบคำอธิบาย {text} ออกแล้ว" + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "ลบพื้นหลังคำเชิญแล้ว" + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "ลบลิงก์ออกแล้ว" + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "ลบสีเน้นในโปรไฟล์คอมมูนิตี้ของสมาชิกแล้ว" + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "ลบรูปโปรไฟล์ในโปรไฟล์คอมมูนิตี้ของสมาชิกแล้ว" + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "ลบแบนเนอร์ในโปรไฟล์คอมมูนิตี้ของสมาชิกแล้ว" + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "ลบประวัติส่วนตัวในโปรไฟล์คอมมูนิตี้ของสมาชิกแล้ว" + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "ลบคำสรรพนามในโปรไฟล์คอมมูนิตี้ของสมาชิกแล้ว" + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "ลบเกณฑ์ประวัติข้อความแล้ว" + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "ลบชื่อเล่น {nick} ออก" + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "ลบการแทนที่สำหรับ {permissions} แล้ว" + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "ลบบทบาท {role} ออกแล้ว" + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "ลบสีของบทบาทออกแล้ว" + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "ลบไอคอนบทบาทออกแล้ว" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "นำช่องกฎออกแล้ว" +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "นำช่องระบบออกแล้ว" +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "ยกเลิกการพักการใช้งานชั่วคราวแล้ว" + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "ลบหัวข้อ {text} แล้ว" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "นำอิโมจิ Unicode ออกแล้ว" +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "นำขีดจำกัดผู้ใช้ออกแล้ว" +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "ลบ URL ที่กำหนดเอง {code} แล้ว" + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "ยกเลิกการพักการใช้งานชั่วคราวของ {targetUserTag} แล้ว" @@ -26381,6 +27670,11 @@ msgstr "เปลี่ยนชื่อสติกเกอร์เป็น msgid "Renamed the channel to {0}." msgstr "เปลี่ยนชื่อช่องเป็น {0}" +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "เปลี่ยนชื่อคอมมูนิตี้จาก {oldName} เป็น {newName}" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "กำหนดให้ผู้ดูแลต้องใช้กา msgid "Required" msgstr "จำเป็น" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "กำหนดให้ต้องใช้ 2FA สำหรับการดำเนินการดูแล" + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "รีเซ็ตระยะห่าง" msgid "Reset the connection limit." msgstr "รีเซ็ตขีดจำกัดการเชื่อมต่อแล้ว" +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "รีเซ็ตตำแหน่งในรายการสมาชิกสำหรับบทบาท" + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "จำกัดการกล่าวถึงบทบาทนี้ msgid "Resubscribe" msgstr "สมัครใหม่" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "เปิดใช้งานคำเชิญอีกครั้ง" + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "กลับสู่หน้าลงชื่อเข้าใช้" @@ -27330,6 +28639,11 @@ msgstr "เพิกถอนคำเชิญนี้ใช่ไหม ก msgid "Revoked {0}." msgstr "เพิกถอน {0} แล้ว" +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "เพิกถอนสิทธิ์ {permissions}" + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (ขวา)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "จัดชิดขวา" @@ -27408,7 +28724,7 @@ msgstr "เสียงเรียกเข้า" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "บทบาท" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "สีของบทบาท" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "สร้างบทบาทแล้ว" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "สร้างบทบาทสำเร็จแล้ว" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "ลบบทบาทแล้ว" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "ต้องระบุชื่อบทบาท" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "อัปเดตบทบาทแล้ว" @@ -28930,11 +30246,21 @@ msgstr "เซสชัน" msgid "Set {fieldNode} to {0}." msgstr "ตั้งค่า {fieldNode} เป็น {0}" +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "ตั้งไอคอนบทบาทแบบกำหนดเอง" + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "ตั้งสถานะกำหนดเอง" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "กำหนดตำแหน่งของบทบาทในรายการสมาชิก" + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "ตั้งสีของบทบาทเป็น <0>{hex} <1/> msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "ตั้งค่าโหมดจำกัดเวลาเป็น {0} {seconds, plural, one {วินาที} other {วินาที}}" +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "ตั้งค่าโหมดจำกัดเวลาเป็น {duration}" + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "ตั้งสถานะ" msgid "Set the AFK channel to {0}." msgstr "ตั้งค่าช่อง AFK เป็น {0}" +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "ตั้งค่าช่อง AFK เป็น {channel}" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "ตั้งค่าหมดเวลา AFK เป็น {0} วินาที" +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "ตั้งค่าคุณภาพเสียงเป็น {kbps} kbps" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "ตั้งค่าประเภทช่องเป็น {0}" msgid "Set the connection limit to {0}." msgstr "ตั้งค่าขีดจำกัดการเชื่อมต่อเป็น {0}" +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "ตั้งค่าข้อความคำเตือนเนื้อหาเป็น {text}" + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "ตั้งค่าข้อความคำเตือนที่กำหนดเองเป็น {text}" + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "ตั้งค่าคำอธิบายเป็น {text}" + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "ตั้งค่าการจัดตำแหน่งภาพปกคำเชิญเป็น {0}" +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "ตั้งค่าลิงก์เป็น {url}" + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "ตั้งค่าสีเน้นในโปรไฟล์คอมมูนิตี้ของสมาชิกเป็น {color}" + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "ตั้งค่าประวัติส่วนตัวในโปรไฟล์คอมมูนิตี้ของสมาชิกเป็น {text}" + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "ตั้งค่าคำสรรพนามในโปรไฟล์คอมมูนิตี้ของสมาชิกเป็น {text}" + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "ตั้งค่าเกณฑ์ประวัติข้อความเป็น {date}" + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "ตั้งชื่อเล่นเป็น {nick}" + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "ตั้งชื่อผลิตภัณฑ์ที่แสดงต่อสาธารณะ สีธีม และชุดรูปภาพที่ไคลเอ็นต์จะแสดง" +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "ตั้งค่าสีของบทบาทเป็น {color}" + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "ตั้งค่าไอคอนบทบาทเป็น {emoji}" + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "ตั้งค่าช่องกฎเป็น {0}" msgid "Set the system channel to {0}." msgstr "ตั้งค่าช่องระบบเป็น {0}" +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "ตั้งค่าช่องระบบเป็น {channel}" + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "ตั้งหัวข้อเป็น {text}" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "ตั้งค่าขีดจำกัดผู้ใช้เป็ msgid "Set the vanity URL to {0}." msgstr "ตั้งค่า URL ที่กำหนดเองเป็น {0}" +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "ตั้งค่า URL แบบกำหนดเองเป็น {code}" + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "ตั้งค่าภูมิภาคเสียงเป็น {region}" + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "ตั้งค่าภูมิภาคเสียงเป็นอัตโนมัติ" + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "แสดงแบนเนอร์โปรไฟล์ส่วนก msgid "Show your Visionary as a regular subscription instead" msgstr "แสดง Visionary เป็นการสมัครสมาชิกปกติแทน" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "แสดงสมาชิกที่มีบทบาทนี้ในส่วนของตนเองในรายการสมาชิกแล้ว" + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "เกิดข้อผิดพลาดขณะดำเนินการคืนเงินของคุณ หากยังคงเกิดข้อผิดพลาด โปรดติดต่อฝ่ายสนับสนุน" #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "เกิดข้อผิดพลาดขณะโหลดบันทึกกิจกรรม" @@ -31105,6 +32531,11 @@ msgstr "เริ่มโทรด้วยเสียง" msgid "Start with computer" msgstr "เริ่มด้วยคอมพิวเตอร์" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "เริ่มแสดงสมาชิกที่มีบทบาทนี้แยกต่างหาก" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "สติกเกอร์" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "บีบอัดสติกเกอร์ให้เล็กพอไม่ได้" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "สร้างสติกเกอร์แล้ว" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "ลบสติกเกอร์แล้ว" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "ช่องสติกเกอร์เต็ม" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "อัปเดตสติกเกอร์แล้ว" @@ -31412,6 +32843,46 @@ msgstr "หยุดรับชมสตรีม" msgid "Stop." msgstr "หยุด" +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "หยุดอนุญาตให้ตั้งชื่อช่องข้อความแบบยืดหยุ่น" + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "หยุดอนุญาตให้ผู้อื่นโคลนอิโมจิของคอมมูนิตี้นี้แล้ว" + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "หยุดอนุญาตให้ผู้อื่นโคลนสติกเกอร์ของคอมมูนิตี้นี้แล้ว" + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "หยุดแสดงสมาชิกที่มีบทบาทนี้แยกต่างหากแล้ว" + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "หยุดซ่อนข้อความการเข้าร่วมในช่องระบบแล้ว" + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "หยุดซ่อนมงกุฎเจ้าของคอมมูนิตี้แล้ว" + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "หยุดกำหนดให้ต้องใช้ 2FA สำหรับการดำเนินการดูแล" + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "หยุดไม่ให้สมาชิกได้ยินผู้อื่นในคอมมูนิตี้นี้" + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "ซิงค์กับหมวดหมู่" msgid "Syntax highlighting" msgstr "การเน้นไวยากรณ์" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "ระบบ" @@ -32449,6 +33922,16 @@ msgstr "แอปขัดข้อง กำลังตรวจสอบก msgid "The app should now be signed in to your account." msgstr "ตอนนี้แอปควรจะลงชื่อเข้าใช้บัญชีของคุณแล้ว" +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "การแบนหมดอายุแล้วเมื่อ {date}" + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "การแบนมีกำหนดจะหมดอายุในวันที่ {date}" + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "เพิ่มบอทไปยัง <0>{destinationName} แล้ว" @@ -32491,6 +33974,11 @@ msgstr "ดาวน์โหลดการอัปเดตเดสก์ท msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "ไฟล์ที่ดาวน์โหลดจะถูกบันทึกลงในคอมพิวเตอร์ของคุณ ติดตั้งด้วยตัวจัดการแพ็กเกจปกติของคุณ" +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "อิโมจิถูกอัปโหลดโดย {user}" + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "ไฟล์นี้มีโทเค็นยืนยันที่เราจะดึงมาจาก <0>{dnsUrl}" @@ -32504,6 +33992,51 @@ msgstr "ไฟล์ที่คุณพยายามอัปโหลดม msgid "The following people can't be added to this group DM:" msgstr "ไม่สามารถเพิ่มคนเหล่านี้เข้าแชทกลุ่มนี้ได้:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "คำเชิญนี้ถูกสร้างโดย {user} เมื่อวันที่ {date}" + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "ลิงก์เชิญนี้สร้างโดย {user}" + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "ลิงก์เชิญถูกสร้างขึ้นเมื่อวันที่ {date}" + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "ลิงก์นี้ไม่เคยถูกใช้งาน" + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "ลิงก์เชิญนี้มีกำหนดจะหมดอายุในวันที่ {date}" + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "ลิงก์เชิญถูกตั้งค่าให้ใช้งานได้ไม่จำกัด" + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "ลิงก์เชิญถูกตั้งค่าให้หมดอายุหลังจาก {duration}" + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "ลิงก์เชิญถูกตั้งค่าให้ให้สิทธิ์สมาชิกชั่วคราว" + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "ลิงก์เชิญถูกตั้งค่าให้ไม่มีวันหมดอายุ" + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "ภาษาที่คนส่วนใหญ่ในคอมมูนิตี้ของคุณใช้ ใช้เพื่อกรองผลลัพธ์ใน Discovery" @@ -32518,6 +34051,11 @@ msgstr "ลิงก์อาจยังใช้งานได้ ลอง msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "การตรวจสอบเนื้อหาสำหรับผู้ใหญ่ถูกยกเลิก คุณสามารถปิดแท็บนี้แล้วลองอีกครั้งจากแอป" +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "สมาชิกไม่เป็นแบบชั่วคราวอีกต่อไป" + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "ราคาใหม่ได้ถูกกำหนดไว้แล msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "ช่องเสียงใหม่จะใช้สิทธิ์ ขีดจำกัดผู้ใช้ และบิตเรตจาก <0>{channelLabel} ซ้ำ" +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "การแทนที่นี้อนุญาต {permissions}" + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "การแทนที่นี้ปฏิเสธ {permissions}" + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "หน้านี้ไม่มีอยู่จริงหรืออาจถูกย้ายไปแล้ว" @@ -32565,6 +34113,11 @@ msgstr "redirect_uri ที่ระบุไม่ได้ลงทะเบ msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "redirect_uri ที่ระบุต้องใช้ HTTP หรือ HTTPS" +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "บทบาทนี้เคยให้สิทธิ์ {permissions}" + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "สติกเกอร์ถูกอัปโหลดเป็นแ msgid "The sticker was uploaded as static." msgstr "สติกเกอร์ถูกอัปโหลดเป็นแบบคงที่" +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "สติกเกอร์นี้ถูกอัปโหลดโดย {user}" + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "ระบบให้บทบาท {role} แก่ {target}" + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "ระบบนำบทบาท {role} ออกจาก {target} แล้ว" + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "ชื่อผู้ใช้ <0>{fluxerTag} ถูกใช้ไ msgid "The verification code is invalid or expired." msgstr "รหัสยืนยันไม่ถูกต้องหรือหมดอายุแล้ว" +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "Webhook นี้ถูกสร้างโดย {user}" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "บัตรนี้ไม่ตรงกับประเทศที่คุณใช้เรียกเก็บเงิน จึงไม่สามารถใช้กับสกุลเงินในภูมิภาคนี้ได้ โปรดใช้บัตรท้องถิ่น หรือกลับไปที่ {productName} และเลือกวิธีการชำระเงินอื่น" #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "หมวดหมู่นี้มีช่องครบตามจำนวนสูงสุดที่ {maxChannelsPerCategory} ช่องแล้ว" @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "ติดตามการดำเนินการของผู้ดูแลทั่วทั้งคอมมูนิตี้" @@ -33953,6 +35526,11 @@ msgstr "โอนความเป็นเจ้าของกลุ่มใ msgid "Transfer ownership" msgstr "โอนความเป็นเจ้าของ" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "โอนความเป็นเจ้าของคอมมูนิตี้ให้กับ {user}" + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "เปิดความเป็นส่วนตัวในการ msgid "Turn text smileys into emoji" msgstr "เปลี่ยนอิโมติคอนแบบข้อความให้เป็นอิโมจิ" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "ปิดเนื้อหาสำหรับผู้ใหญ่แล้ว" + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "ปิดโหมดจำกัดเวลาแล้ว" + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "ปิดคำเตือนเนื้อหาแล้ว" + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "ปิดใช้งานแบนเนอร์แยกส่วน" + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "ปิดไมโครโฟนของสมาชิกในคอมมูนิตี้นี้แล้ว" + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "เปิดใช้งานเนื้อหาสำหรับผู้ใหญ่แล้ว" + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "เปิดคำเตือนเนื้อหาแล้ว" + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "เปิดใช้งานแบนเนอร์แยกส่วน" + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "เปิดไมโครโฟนของสมาชิกอีกครั้งในคอมมูนิตี้นี้แล้ว" + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "การปิดขอบเขตอาจทำให้แอปทำงานไม่ถูกต้อง" @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "ยูเครน" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "ไม่สามารถโหลดบันทึกกิจกรรมได้" @@ -34859,6 +36482,7 @@ msgstr "เป้าหมายที่ไม่รู้จัก" msgid "unknown user" msgstr "ผู้ใช้ที่ไม่รู้จัก" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "ผู้ใช้ที่ไม่รู้จัก" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "ใช้ได้เฉพาะในคอมมูนิตี้น #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "เวอร์มอนต์" msgid "Version" msgstr "เวอร์ชัน" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "สูงมาก" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "กล้องเว็บแคม" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "สร้าง webhook แล้ว" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "ลบ webhook แล้ว" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "ชื่อ webhook" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "อัปเดต webhook แล้ว" diff --git a/fluxer_app/src/features/i18n/locales/tr/messages.po b/fluxer_app/src/features/i18n/locales/tr/messages.po index addaa24eb..2f1ea9e94 100644 --- a/fluxer_app/src/features/i18n/locales/tr/messages.po +++ b/fluxer_app/src/features/i18n/locales/tr/messages.po @@ -56,6 +56,31 @@ msgstr "{a} yazıyor..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} ve {c} yazıyor..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} adlı kişi, {user} için {channel} kanalında bir izin geçersiz kılma ekledi." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor}, {channel} kanalında @everyone rolü için bir izin geçersiz kılma işlemi ekledi." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} adlı kullanıcı, {role} rolü için {channel} kanalında bir izin geçersiz kılma işlemi ekledi." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} bir çıkartma ekledi." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} bir emoji ekledi." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor}, {channelNode} kanalında {targetEntity} için kanal izinleri ekledi." @@ -64,35 +89,200 @@ msgstr "{actor}, {channelNode} kanalında {targetEntity} için kanal izinleri ek msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor}, {targetEntity} için kanal izinleri ekledi." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor}, {target} adlı botu geçici üye olarak ekledi." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} {target} adlı botu ekledi." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor}, {targetMember} botunu ekledi." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} {emoji} emojisini ekledi." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor}, {namedTarget} emojisini ekledi." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} {name} adlı çıkartmayı ekledi." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor}, {namedTarget} çıkartmasını ekledi." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor}, {target} kullanıcısını {duration} süreyle yasakladı." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor}, {target} kullanıcısını yasakladı." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor}, {targetMember} kullanıcısını yasakladı." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor}, {target} üzerindeki mesaj gönderme, tepki verme ve sesli kanala katılma engelini {date} tarihinde bitecek şekilde değiştirdi." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor}, {target} adlı üyenin takma adını {oldNick} yerine {newNick} olarak değiştirdi." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor}, {channel} kategorisinin izin geçersiz kılmalarını değiştirdi." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor}, {channel} kanalının izin geçersiz kılmalarını değiştirdi." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor}, {channel} bağlantı kanalının izin geçersiz kılmalarını değiştirdi." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor}, {channel} metin kanalının izin geçersiz kılmalarını değiştirdi." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor}, {channel} sesli kanalının izin geçersiz kılmalarını değiştirdi." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} özel URL'yi {oldCode} yerine {newCode} olarak değiştirdi." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} topluluk profilinin avatarını değiştirdi." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} topluluk profili banner'ını değiştirdi." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} topluluk profilinin biyografisini {text} olarak değiştirdi." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} kendi takma adını {oldNick} yerine {newNick} olarak değiştirdi." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} bir webhook oluşturdu." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} {channel} kategorisini oluşturdu." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} adlı kullanıcı, {category} kategorisine {channel} adlı kanalı oluşturdu." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} adlı kullanıcı, {channel} adlı kanalı oluşturdu." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor}, {namedTarget} kanalını oluşturdu." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} tarafından {channel} için {code} daveti oluşturuldu." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} {code} davetini oluşturdu." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor}, {namedTarget} davetini oluşturdu{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor}, {category} içinde {channel} bağlantı kanalını oluşturdu." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} {channel} bağlantı kanalını oluşturdu." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor}, {namedTarget} rolünü oluşturdu." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} {role} rolünü oluşturdu." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} tarafından {category} içinde {channel} metin kanalı oluşturuldu." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} {channel} metin kanalını oluşturdu." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor}, {category} içinde {channel} sesli kanalını oluşturdu." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} {channel} sesli kanalını oluşturdu." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} adlı kullanıcı, {channel} kanalına {name} webhook'unu oluşturdu." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} tarafından {name} adlı webhook oluşturuldu." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor}, {namedTarget} webhook'unu oluşturdu." @@ -103,49 +293,209 @@ msgstr "{actor}, {namedTarget} webhook'unu oluşturdu." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor}, {0} {bulkCount, plural, one {mesaj} other {mesaj}}{1} sildi." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor}, {channel} kanalında {count, plural, one {# mesaj} other {# mesaj}} sildi." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor}, {count, plural, one {# mesaj} other {# mesaj}} sildi." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} adlı kullanıcı {channel} kanalında bir mesaj sildi." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} bir mesaj sildi." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} bir mesajı sildi{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} bir çıkartma sildi." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} bir webhook sildi." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} bir emoji sildi." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} birden fazla mesaj sildi{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor}, {channel} kanalında bazı mesajları sildi." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} bazı mesajları sildi." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} {channel} kategorisini sildi." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} {channel} kanalını sildi." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor}, {namedTarget} kanalını sildi." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor}, {emoji} emojisini sildi." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor}, {namedTarget} emojisini sildi." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} tarafından {channel} için {code} davet bağlantısı silindi." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} tarafından {code} daveti silindi." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor}, {namedTarget} davetini sildi{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} {channel} bağlantı kanalını sildi." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor}, {namedTarget} rolünü sildi." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} {role} rolünü sildi." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} {name} adlı çıkartmayı sildi." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor}, {namedTarget} çıkartmasını sildi." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} {channel} metin kanalını sildi." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} {channel} sesli kanalını sildi." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} adlı kullanıcı, {channel} kanalından {name} webhook'unu sildi." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} adlı kullanıcı, {name} adlı webhook'u sildi." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor}, {namedTarget} webhook'unu sildi." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor}, {target} kullanıcısını {channel} kanalından çıkardı." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor}, {target} kullanıcısının sesli bağlantısını kesti." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor}, {targetMember} kullanıcısının ses bağlantısını kesti." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor}, {channel} kanalından ayrıldı." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} sesli bağlantısını kesti." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor}, {target} adlı kullanıcıya {role} rolünü verdi." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor}, {target} kullanıcısını topluluktan attı." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor}, {targetMember} kullanıcısını attı." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor}, bu toplulukta {target}'ın tekrar başkalarını duymasına izin verdi." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} bir değişiklik yaptı ancak bu uygulama sürümü bu değişikliği gösteremiyor." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor}, {target} kişisini {oldChannel} kanalından {newChannel} kanalına taşıdı." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor}, {target} kullanıcısını {channel} kanalına taşıdı." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor}, {target} kullanıcısını farklı bir sesli kanala taşıdı." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor}, {targetMember} kullanıcısını {channelNode} kanalına taşıdı." @@ -154,16 +504,68 @@ msgstr "{actor}, {targetMember} kullanıcısını {channelNode} kanalına taşı msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor}, {targetMember} kullanıcısını başka bir sesli kanala taşıdı." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} {oldChannel} kanalından {newChannel} kanalına taşındı." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor}, {role} rolünü üye listesinde aşağı taşıdı." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor}, {role} rolünü rol listesinde aşağı taşıdı." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor}, {role} rolünü üye listesinde yukarı taşıdı." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor}, {role} rolünü rol listesinde yukarı taşıdı." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor}, {channel} kanalına geçti." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} başka bir sesli kanala geçti." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} davetleri duraklattı." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor}, {targetEntity} üzerinde bir denetleme eylemi gerçekleştirdi." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor}, {channel} kanalında bir mesaj sabitledi." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} bir mesaj sabitledi." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} bir mesajı sabitledi{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} aktif olmayan üyeleri temizledi." @@ -179,19 +581,249 @@ msgstr "{actor}, {channelNode} kanalında {targetEntity} için kanal izinlerini msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor}, {targetEntity} için kanal izinlerini kaldırdı." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} adlı kullanıcı, {target} adlı kullanıcıdan {nick} takma adını kaldırdı." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor}, {user} için izin geçersiz kılmasını {channel} kanalından kaldırdı." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor}, {channel} kanalından @everyone rolü için izin geçersiz kılmasını kaldırdı." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor}, {role} rolü için {channel} kanalındaki izin geçersiz kılmasını kaldırdı." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor}, {role} rolünü {target} adlı kullanıcıdan kaldırdı." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} tarafından {target} için zaman aşımı kaldırıldı." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} {code} özel URL'sini kaldırdı." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} topluluk profilinin vurgu rengini kaldırdı." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} topluluk profili avatarını kaldırdı." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} topluluk profili banner'ını kaldırdı." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} topluluk profilinin biyografisini kaldırdı." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} topluluk profili zamirlerini kaldırdı." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} kendi {nick} takma adını kaldırdı." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} {oldName} kategorisini {newName} olarak yeniden adlandırdı." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} {oldName} kanalını {newName} olarak yeniden adlandırdı." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} topluluğu {oldName} yerine {newName} olarak yeniden adlandırdı." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} {oldEmoji} emojisini {newEmoji} olarak yeniden adlandırdı." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} {oldName} bağlantı kanalını {newName} olarak yeniden adlandırdı." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} {oldName} rolünü {newName} olarak yeniden adlandırdı." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} {oldName} adlı çıkartmayı {newName} olarak yeniden adlandırdı." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} {oldName} metin kanalını {newName} olarak yeniden adlandırdı." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} {oldName} sesli kanalını {newName} olarak yeniden adlandırdı." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} adlı kullanıcı, {oldName} webhook'unu {newName} olarak yeniden adlandırdı." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor}, {role} rolünün üye listesi konumunu sıfırladı." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} davetleri yeniden başlattı." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor}, {role} rolü için bir üye listesi konumu ayarladı." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} {target} kullanıcısının takma adını {nick} olarak ayarladı." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} özel URL'yi {code} olarak ayarladı." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor}, topluluk profili vurgu rengini {color} olarak ayarladı." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} topluluk profili avatarını ayarladı." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} topluluk profili banner'ını ayarladı." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} topluluk profilinin biyografisini {text} olarak ayarladı." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor}, topluluk profilindeki zamirlerini {text} olarak ayarladı." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} kendi takma adını {nick} olarak ayarladı." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor}, bu toplulukta {target}'ın başkalarını duymasını engelledi." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor}, {target} kullanıcısına {date} tarihine kadar zaman aşımı uyguladı." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor}, topluluk sahipliğini {user} adlı kişiye devretti." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor}, bu toplulukta {target}'ın mikrofonunu tekrar açtı." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor}, bu toplulukta {target}'ın mikrofonunu kapattı." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} tarafından {target} üzerindeki yasak kaldırıldı." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor}, {targetMember} kullanıcısının yasağını kaldırdı." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor}, {channel} kanalında bir mesajın sabitlemesini kaldırdı." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} bir mesajı sabitlemeyi kaldırdı." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} bir mesajın sabitlemesini kaldırdı{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor}, {target} kullanıcısını güncelledi." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor}, {targetMember} kullanıcısını güncelledi." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} bir çıkartmayı güncelledi." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} bir webhook güncelledi." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} bir emoji güncelledi." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor}, {channelNode} kanalında {targetEntity} için kanal izinlerini güncelledi." @@ -204,35 +836,112 @@ msgstr "{actor}, {targetEntity} için kanal izinlerini güncelledi." msgid "{actor} updated roles for {targetMember}." msgstr "{actor}, {targetMember} kullanıcısının rollerini güncelledi." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} {channel} kategorisini güncelledi." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} {channel} kanalını güncelledi." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor}, {namedTarget} kanalını güncelledi." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} topluluk ayarlarını güncelledi." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} {emoji} emojisini güncelledi." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor}, {namedTarget} emojisini güncelledi." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} {code} davetini güncelledi." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor}, {namedTarget} davetini güncelledi{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} {channel} bağlantı kanalını güncelledi." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor}, {user} için izin geçersiz kılmasını {channel} kanalında güncelledi." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor}, {channel} kanalında @everyone rolü için izin geçersiz kılmasını güncelledi." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor}, {role} rolünün {channel} kanalındaki izin geçersiz kılmasını güncelledi." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor}, {namedTarget} rolünü güncelledi." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} {role} rolünü güncelledi." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor}, {target} adlı kullanıcının rollerini güncelledi." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} {name} adlı çıkartmayı güncelledi." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor}, {namedTarget} çıkartmasını güncelledi." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} {channel} metin kanalını güncelledi." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} tarafından sesli kanal {channel} güncellendi." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} adlı kullanıcı, {name} webhook'unu güncelledi." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor}, {namedTarget} webhook'unu güncelledi." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} topluluk profilini güncelledi." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# öğe} other {# öğe}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# üye} other {# üye}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# ek izin} other {# ek izin}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# ortak topluluk} other {# ortak topluluk}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {# cihazı göster} other {# cihazı göster}}" msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {# cihazdan çıkış yap} other {# cihazdan çıkış yap}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {Davet # kullanım ile sınırlıydı.} other {Davet # kullanımla sınırlıydı.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {Davet # kez kullanıldı.} other {Davet # kez kullanıldı.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "{guildName} kanalları" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Etkinlik" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Etkinlik günlüğü" @@ -2713,10 +3437,60 @@ msgstr "{0} eklendi." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "{length, plural, one {# yerel dosya referansı eklendi} other {# yerel dosya referansı eklendi}}." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "Sohbet gömme arka planı eklendi." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Topluluk banner'ı eklendi." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Topluluk simgesi eklendi." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "{text} metinli bir içerik uyarısı eklendi." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Bir içerik uyarısı eklendi." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "Bir avatar eklendi." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Davet arka planı eklendi." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Roller eklendi." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Üyenin topluluk profili avatarı eklendi." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Üyenin topluluk profili banner'ı eklendi." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "{role} rolü eklendi." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Hizalama kontrolleri yalnızca daha geniş ekranlarda kullanılabilir" #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Tüm <0/>, sonsuza dek. Faturalandırma yok, yenileme yok." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Tüm eylemler" @@ -3001,10 +3775,12 @@ msgstr "Tüm diller" msgid "All members" msgstr "Tüm üyeler" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "Tüm zamanlar" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Tüm kullanıcılar" @@ -3197,6 +3973,16 @@ msgstr "{0} için izin verildi ve {1} için izin kaldırıldı." msgid "Allowed {0}." msgstr "{0} için izin verildi." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "{permissions} için izin verildi." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Tüm üyelerin bu rolden bahsetmesine izin verildi." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "İzin verilen arayanlar" @@ -3205,15 +3991,35 @@ msgstr "İzin verilen arayanlar" msgid "Allowed everyone to mention this role." msgstr "Herkesin bu rolden bahsetmesine izin verildi." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Esnek metin kanalı adlarına izin verildi." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "İzin verilen davetler" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Bu topluluğun emojilerinin başkaları tarafından klonlanmasına izin verildi." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Bu topluluğun çıkartmalarının başkaları tarafından klonlanmasına izin verildi." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "İzin verilen yönlendirmeler" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Üye başına en fazla {count, plural, one {# bağlantıya} other {# bağlantıya}} izin verildi." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Üyeleri yasakla" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Son mesajlarını silme seçeneğiyle üyeleri topluluktan yasaklayın." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Yasaklama nedeni" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Kullanıcıyı engelle" msgid "Blocked" msgstr "Engellendi" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Üyenin {date} tarihine kadar mesaj göndermesi, tepki vermesi ve sesli kanala katılması engellendi." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Bot" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Bot eklendi" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Kategori silindi" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Kategori dolu" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Orta" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Ortalanmış" @@ -6298,11 +7116,183 @@ msgstr "Kullanıcı adınızı değiştirin" msgid "Changed nickname from {0} to {1}." msgstr "Takma adı {0} yerine {1} olarak değiştirdi." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Yavaş modu {oldDuration} değerinden {newDuration} değerine değiştirdi." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "AFK kanalı {oldChannel} yerine {newChannel} olarak değiştirildi." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "AFK zaman aşımını {oldDuration} değerinden {newDuration} değerine değiştirdi." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "Ses kalitesi {oldKbps} kbps'den {newKbps} kbps'ye değiştirildi." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Avatarı değiştirdi." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Bit hızını {0} olarak değiştirdi." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Mesaj gönderme, tepki verme ve sesli kanala katılma engeli {date} tarihinde bitecek şekilde değiştirildi." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Sohbet yerleştirme arka planını değiştirdi." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Topluluk banner'ını değiştirdi." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Topluluk simgesi değiştirildi." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "Üye başına bağlantı sayısı {oldCount} değerinden {newCount} değerine değiştirildi." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "İçerik uyarı metnini {oldText} yerine {newText} olarak değiştirdi." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Özel rol simgesi değiştirildi." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Özel uyarı metnini {oldText} yerine {newText} olarak değiştirdi." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "Varsayılan bildirim ayarı {oldSetting} konumundan {newSetting} konumuna değiştirildi." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Açıklama {oldText} yerine {newText} olarak değiştirildi." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Müstehcen içerik filtresini {oldFilter} yerine {newFilter} olarak değiştirdi." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Davet arka planı hizalaması {oldAlignment} yerine {newAlignment} olarak değiştirildi." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Davet arka planını değiştirdi." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "Bağlantı {oldUrl} yerine {newUrl} olarak değiştirildi." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Üyenin topluluk profilindeki avatarı değiştirildi." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Üyenin topluluk profili banner'ı değiştirildi." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "Üyenin topluluk profili biyografisi {text} olarak değiştirildi." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "Mesaj geçmişi eşiğini {oldDate} tarihinden {newDate} tarihine değiştirdi." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "Ad {oldName} yerine {newName} olarak değiştirildi." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "Takma ad {oldNick} yerine {newNick} olarak değiştirildi." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Rol rengi {oldColor} yerine {newColor} olarak değiştirildi." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Rol simgesi {oldEmoji} yerine {newEmoji} olarak değiştirildi." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "Sistem kanalı {oldChannel} yerine {newChannel} olarak değiştirildi." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Konu {oldText} yerine {newText} olarak değiştirildi." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "Kullanıcı üst sınırını {oldCount} değerinden {newCount} değerine değiştirdi." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "Özel URL {oldCode} yerine {newCode} olarak değiştirildi." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Doğrulama seviyesi {oldLevel} yerine {newLevel} olarak değiştirildi." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "Ses bölgesini {oldRegion} yerine {newRegion} olarak değiştirdi." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "kanal" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Kanal veya kategori" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Kanal izin geçersiz kılması eklendi" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Kanal izin geçersiz kılması kaldırıldı" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Kanal izin geçersiz kılması güncellendi" @@ -7815,7 +8805,7 @@ msgstr "250'den fazla kişiye sahip topluluklar \"yalnızca bahsetmeler\" ayarı #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Bu sohbetteki mesajlarınızı silmek istiyor musunuz?" msgid "Deleted" msgstr "Silindi" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "Üyenin son mesaj geçmişinden {duration} silindi." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Silinen metin" msgid "Deleted your messages." msgstr "Mesajlarınız silindi." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "silinmiş-kategori" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "silinmiş-kanal" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "silinmiş-rol" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "{0} reddedildi ve {1} için reddetme kaldırıldı." msgid "Denied {0}." msgstr "{0} reddedildi." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "{permissions} reddedildi." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Gömülü içerikler yeniden gösterildi" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Emoji klonlama etkinleştirildi" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Emoji oluşturuldu" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Emoji silindi" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Emoji yuvaları dolu" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Emoji güncellendi" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Hesap oluşturma tarihine göre filtrele" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Eyleme göre filtrele" @@ -14572,18 +15587,22 @@ msgstr "Rollere göre filtrele" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Kullanıcıya göre filtrele" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Herkese filtre uygula" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Rolü olmayan üyeleri filtrele" @@ -15890,6 +16909,11 @@ msgstr "{0} verildi ve {1} geri alındı." msgid "Granted {0}." msgstr "{0} verildi." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "{permissions} verildi." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Selam, {username}! Umarız keyifli vakit geçirirsin." msgid "Hey, {username}, welcome aboard!" msgstr "Selam {username}, aramıza hoş geldin!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Sistem kanalında katılım mesajları gizlendi." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Topluluk sahibi tacı gizlendi." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Kendi kameranız gizlensin mi?" msgid "Hide your own screen share?" msgstr "Kendi ekran paylaşımınız gizlensin mi?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Yüksek" @@ -17688,7 +18724,7 @@ msgstr "Davet et" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "Davet kodu {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Davet oluşturuldu" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Davet silindi" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Davet kullanılamıyor" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Davet güncellendi" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "Sol {keyName}" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Sola hizalı" @@ -18745,6 +19783,11 @@ msgstr "Ekran okuyucuların açık kanala yeni mesajlar geldiğinde bunları duy msgid "Let the community self-moderate" msgstr "Topluluğun kendi kendini denetlemesine izin ver" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Üyenin bu toplulukta tekrar başkalarını duymasına izin verildi." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Masaüstü uygulamasını yeniden başlattıktan sonra özel CSS'in şeffaf pencere bölgelerini göstermesine izin ver." @@ -18815,6 +19858,16 @@ msgstr "Beğenildi." msgid "Likes: <0>{countLabel}" msgstr "Beğeniler: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "Bu rolden bahsetme yetkisi, herhangi bir rolden bahsetme iznine sahip üyelerle sınırlandırıldı." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Kanalı {count, plural, one {# kullanıcı} other {# kullanıcı}} ile sınırladı." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Louisiana" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Düşük" @@ -19204,6 +20259,11 @@ msgstr "macOS varsayılanı" msgid "macOS permissions" msgstr "macOS izinleri" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Kanalın yetişkinlere yönelik içerik ayarını devralması sağlandı." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Emojiyi animasyonlu olarak işaretledi." msgid "Marked emoji as static." msgstr "Emojiyi statik olarak işaretledi." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Kanalın yetişkinlere yönelik içerik içerdiği işaretlendi." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Kanalın yetişkinlere yönelik içerik içermediği işaretlendi." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "Üyeyi kalıcı olarak işaretledi." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Oynatmayı durdur" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Orta" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Orta boyut (varsayılan)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Üye" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "{displayName} için üye eylemleri" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Üye yasaklandı" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Üye bağlantısı kesildi" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Üye atıldı" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Üye listeleri bu toplulukta geçici olarak kullanılamıyor" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Üye taşındı" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Üye bulunamadı" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Üye rolleri güncellendi" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Üye olma tarihi" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Üyenin yasağı kaldırıldı" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Üye güncellendi" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Çevrimdışı olduklarında bir rol atanmadığı sürece üyeler kaldırılır." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Üyeler temizlendi" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "{readMessageHistoryPermissionLabel} izni olmayan üyeler bu tarihten sonra gönderilen mesajları görüntüleyebilir." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Üyeler, seçili" @@ -20077,8 +21149,10 @@ msgstr "Sizden bahsedilenler {recentMentionsRetentionDays} gün boyunca burada g msgid "Mentions of you show up here for {retentionDays} days." msgstr "Sizden bahsedilenler {retentionDays} gün boyunca burada görünür." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Yalnızca bahsetmeler" @@ -20104,7 +21178,7 @@ msgstr "mesaj" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Mesaj" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Mesaj hata ayıklama" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Mesaj silindi" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "{channelName} için mesaj listesi" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Mesaj sabitlendi" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Mesaj zamanı" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Mesajın sabitlemesi kaldırıldı" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Mesajlar ve medya" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Mesajlar silindi" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Moderasyon" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Moderasyon işlemleri ve topluluk değişiklikleri burada görünecektir." @@ -20915,16 +21989,51 @@ msgstr "Şuraya taşı" msgid "Move to…" msgstr "Şuraya taşı…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "{oldChannel} kanalından {newChannel} kanalına taşındı." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Kanalı {oldCategory} kategorisinden {newCategory} kategorisine taşıdı." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Kanalı {category} kategorisine taşıdı." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Kanalı {0} kategorisine taşıdı." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "Rolü üye listesinde aşağı taşıdı." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "Rolü rol listesinde aşağı taşıdı." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Rolü {0}. sıraya taşıdı." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "Rolü üye listesinde yukarı taşıdı." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "Rolü rol listesinde yukarı taşıdı." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Yeni mesaj" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Yeni mesajlar" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "Yerel dosya referansı yok" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Henüz kayıt yok" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "Neden belirtilmedi" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "Neden belirtilmedi." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Dönüştürme yok" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Dönüştürme yok" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "OAuth2 URL oluşturucu" msgid "Objects" msgstr "Nesneler" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Nesneler" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Kapalı" @@ -23523,6 +24636,21 @@ msgstr "Orijinal mesaj yüklenemedi" msgid "Original message was deleted" msgstr "Orijinal mesaj silindi" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "{user} tarafından {date} tarihinde yasaklanmış." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Orijinal olarak {user} tarafından yasaklandı." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Orijinal yasaklanma tarihi: {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Azaltılmış hareket nedeniyle duraklatıldı. Animasyonlu emojilerin o msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "Azaltılmış hareket nedeniyle duraklatıldı. GIF'lerin oynatılmaya devam etmesi için açın." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Davetler duraklatıldı." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Hesabınızı ve ilgili tüm verileri kalıcı olarak silin. Bu işlem g msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "DM'ler, grup DM'leri ve topluluklar genelinde gönderdiğiniz mesajları kalıcı olarak kaldırın. İşlem arka planda çalışır ve tamamlandığında bir DM alırsınız." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "İzin geçersiz kılma eklendi" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "İzin geçersiz kılma kaldırıldı" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "İzin geçersiz kılma güncellendi" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Yükseltmeye hazır mısınız?" msgid "Real-time" msgstr "Gerçek zamanlı" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Neden" @@ -26291,26 +27440,166 @@ msgstr "{oldLabel} rolü kaldırıldı." msgid "Removed roles." msgstr "Roller kaldırıldı." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "AFK kanalı kaldırıldı." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Avatar kaldırıldı." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Kanalı kategorisinden kaldırdı." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Kanalı {category} kategorisinden kaldırdı." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Sohbet yerleştirme arka planı kaldırıldı." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "Topluluk banner'ını kaldırdı." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Topluluk simgesi kaldırıldı." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "İçerik uyarı metni kaldırıldı." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "İçerik uyarısı kaldırıldı." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Özel rol simgesi kaldırıldı." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Özel uyarı metni kaldırıldı." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Açıklama {text} kaldırıldı." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Davet arka planı kaldırıldı." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Bağlantı kaldırıldı." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Üyenin topluluk profili vurgu rengi kaldırıldı." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Üyenin topluluk profili avatarı kaldırıldı." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Üyenin topluluk profili banner'ı kaldırıldı." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Üyenin topluluk profili biyografisi kaldırıldı." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "Üyenin topluluk profili zamirleri kaldırıldı." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Mesaj geçmişi eşiği kaldırıldı." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "{nick} takma adını kaldırdı." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "{permissions} için geçersiz kılmayı kaldırdı." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "{role} rolü kaldırıldı." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Rol rengi kaldırıldı." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Rol simgesi kaldırıldı." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Kurallar kanalı kaldırıldı." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "Sistem kanalı kaldırıldı." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "Zaman aşımı kaldırıldı." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "{text} konusunu kaldırdı." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Unicode emojisi kaldırıldı." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Kullanıcı sınırı kaldırıldı." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "{code} özel URL'si kaldırıldı." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "{targetUserTag} için zaman aşımı kaldırıldı" @@ -26381,6 +27670,11 @@ msgstr "Çıkartmanın adı şuna değiştirildi: {0}." msgid "Renamed the channel to {0}." msgstr "Kanalın adı şuna değiştirildi: {0}." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Topluluk, {oldName} yerine {newName} olarak yeniden adlandırıldı." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Moderatörlerin yasaklama, atma, zaman aşımı uygulama veya mesaj silm msgid "Required" msgstr "Gerekli" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "Moderasyon eylemleri için 2FA zorunlu kılındı." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Boşluğu sıfırla" msgid "Reset the connection limit." msgstr "Bağlantı sınırı sıfırlandı." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "Rolün üye listesi konumu sıfırlandı." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Bu rolden bahsetme, gerekli izne sahip üyelerle sınırlandırıldı." msgid "Resubscribe" msgstr "Yeniden abone ol" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Davetler yeniden başlatıldı." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Giriş yapma ekranına dön" @@ -27330,6 +28639,11 @@ msgstr "Bu davet iptal edilsin mi? Geri alınamaz." msgid "Revoked {0}." msgstr "{0} iptal edildi." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "{permissions} kaldırıldı." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "Sağ {keyName}" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Sağa hizalı" @@ -27408,7 +28724,7 @@ msgstr "Zil sesi" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Rol" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Rol rengi" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Rol oluşturuldu" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Rol başarıyla oluşturuldu" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Rol silindi" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "Rol adı gerekli" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Rol güncellendi" @@ -28930,11 +30246,21 @@ msgstr "Oturumlar" msgid "Set {fieldNode} to {0}." msgstr "{fieldNode} şu değere ayarlandı: {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Özel bir rol simgesi ayarlandı." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Özel durum ayarla" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Rol için bir üye listesi konumu ayarlandı." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "Rol rengi <0>{hex} <1/> olarak ayarlandı." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "Yavaş mod {0} {seconds, plural, one {saniye} other {saniye}} olarak ayarlandı." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Yavaş mod {duration} olarak ayarlandı." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Durum ayarla" msgid "Set the AFK channel to {0}." msgstr "AFK kanalı {0} olarak ayarlandı." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "AFK kanalı olarak {channel} ayarlandı." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "AFK zaman aşımı {0} saniye olarak ayarlandı." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "Ses kalitesi {kbps} kbps olarak ayarlandı." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "Kanal türü {0} olarak ayarlandı." msgid "Set the connection limit to {0}." msgstr "Bağlantı sınırı {0} olarak ayarlandı." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "İçerik uyarısı metni {text} olarak ayarlandı." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "Özel uyarı metni {text} olarak ayarlandı." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "Açıklama {text} olarak ayarlandı." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "Davet karşılama ekranı hizalaması {0} olarak ayarlandı." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "Bağlantı {url} olarak ayarlandı." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "Üyenin topluluk profili vurgu rengi {color} olarak ayarlandı." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "Üyenin topluluk profili biyografisi {text} olarak ayarlandı." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "Üyenin topluluk profili zamirleri {text} olarak ayarlandı." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "Mesaj geçmişi eşiği {date} olarak ayarlandı." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "Takma ad {nick} olarak ayarlandı." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "İstemcilerin görüntülediği genel ürün adını, tema rengini ve görsel varlıklarını ayarlayın." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "Rol rengi {color} olarak ayarlandı." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "Rol simgesi {emoji} olarak ayarlandı." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "Kurallar kanalı {0} olarak ayarlandı." msgid "Set the system channel to {0}." msgstr "Sistem kanalı {0} olarak ayarlandı." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "Sistem kanalı olarak {channel} ayarlandı." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "Konu {text} olarak ayarlandı." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "Kullanıcı sınırı {0} olarak ayarlandı." msgid "Set the vanity URL to {0}." msgstr "Özel URL {0} olarak ayarlandı." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "Özel URL {code} olarak ayarlandı." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "Ses bölgesi {region} olarak ayarlandı." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "Ses bölgesi otomatik olarak ayarlandı." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Genel profil banner'ınızı bu toplulukta gösterin" msgid "Show your Visionary as a regular subscription instead" msgstr "Visionary rozetini normal abonelik olarak göster" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Bu role sahip üyeleri üye listesinde kendi bölümlerinde gösterdi." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Geri ödemeniz yapılırken bir sorun oluştu. Bu durum devam ederse destek ekibiyle iletişime geçin." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Etkinlik günlüğü yüklenirken bir sorun oluştu." @@ -31105,6 +32531,11 @@ msgstr "Sesli arama başlat" msgid "Start with computer" msgstr "Bilgisayarla birlikte başlat" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "Bu role sahip üyeler ayrı olarak gösterilmeye başlandı." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "çıkartma" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "Çıkartma yeterince sıkıştırılamadı" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Çıkartma oluşturuldu" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Çıkartma silindi" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Çıkartma yuvaları dolu" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Çıkartma güncellendi" @@ -31412,6 +32843,46 @@ msgstr "Yayını izlemeyi durdur" msgid "Stop." msgstr "Dur." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Metin kanalı adlarında esnekliğe izin vermeyi durdurdu." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Bu topluluğun emojilerinin başkaları tarafından klonlanmasına izin vermeyi durdurdu." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Bu topluluğun çıkartmalarının başkaları tarafından klonlanmasına izin vermeyi durdurdu." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Bu role sahip üyelerin ayrı olarak gösterilmesi durduruldu." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Sistem kanalında katılım mesajlarını gizlemeyi durdurdu." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Topluluk sahibi tacını gizlemeyi durdurdu." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Moderasyon eylemleri için 2FA zorunluluğu kaldırıldı." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Üyenin bu toplulukta başkalarını duyması engellendi." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Kategoriyle senkronize et" msgid "Syntax highlighting" msgstr "Sözdizimi vurgulama" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "Sistem" @@ -32449,6 +33922,16 @@ msgstr "Uygulama çöktü. Bu sorunu çözebilecek güncellemeler kontrol ediliy msgid "The app should now be signed in to your account." msgstr "Uygulamada hesabınıza giriş yapılmış olmalı." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "Yasak zaten {date} tarihinde sona ermişti." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "Yasak {date} tarihinde sona erecekti." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "Bot şuraya eklendi: <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "Masaüstü güncellemesi indirildi. Kurulumu tamamlamak için {productNa msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "İndirilen dosya bilgisayarınıza kaydedildi. Normal paket yöneticinizle yükleyin." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "Emoji, {user} tarafından yüklendi." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "Dosya, <0>{dnsUrl} adresinden alacağımız doğrulama belirtecini içeriyor." @@ -32504,6 +33992,51 @@ msgstr "Yüklemeye çalıştığınız dosya, {maxSizeFormatted} olan maksimum b msgid "The following people can't be added to this group DM:" msgstr "Aşağıdaki kişiler bu grup DM'ine eklenemiyor:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "Davet, {date} tarihinde {user} tarafından oluşturuldu." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "Davet, {user} tarafından oluşturuldu." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "Davet {date} tarihinde oluşturuldu." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "Davet hiç kullanılmamıştı." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "Davet {date} tarihinde sona erecekti." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "Davet bağlantısı sınırsız kullanıma izin verecek şekilde ayarlandı." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "Davet {duration} sonra sona erecek şekilde ayarlandı." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "Davet, geçici üyelik verecek şekilde ayarlandı." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "Davet bağlantısı süresiz olarak ayarlandı." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "Topluluğunuzdaki çoğu kişinin konuştuğu dil. Keşfet sonuçlarını filtrelemek için kullanılır." @@ -32518,6 +34051,11 @@ msgstr "Bağlantı hâlâ çalışıyor olabilir. Birazdan tekrar deneyin." msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "Yetişkin içeriği kontrolü iptal edildi. Bu sekmeyi kapatıp uygulamadan tekrar deneyebilirsiniz." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "Üye artık geçici değil." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "Yeni fiyat zaten {effectiveDate} tarihinde geçerli olacak şekilde plan msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "Yeni sesli kanal, izinleri, kullanıcı sınırını ve bit hızını <0>{channelLabel} kanalından devralacak." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "Geçersiz kılma şunlara izin veriyordu: {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "Geçersiz kılma {permissions} iznini reddetti." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "Aradığınız sayfa mevcut değil veya taşınmış." @@ -32565,6 +34113,11 @@ msgstr "Sağlanan redirect_uri bu uygulama için kayıtlı değil." msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "Sağlanan redirect_uri HTTP veya HTTPS kullanmalıdır." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "Rol şunları verdi: {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "Çıkartma animasyonlu olarak yüklendi." msgid "The sticker was uploaded as static." msgstr "Çıkartma statik olarak yüklendi." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "Çıkartma, {user} tarafından yüklendi." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "Sistem, {target} adlı kullanıcıya {role} rolünü verdi." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "Sistem, {role} rolünü {target} adlı kullanıcıdan kaldırdı." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "<0>{fluxerTag} kullanıcı adı zaten alınmış. Devam ederseniz et msgid "The verification code is invalid or expired." msgstr "Doğrulama kodu geçersiz veya süresi dolmuş." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "Webhook, {user} tarafından oluşturuldu." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Bu kart, fatura adresinizin bulunduğu ülkeyle eşleşmiyor, bu nedenle bu yerel para birimi için kullanılamaz. Yerel bir kart kullanın veya {productName} uygulamasına dönüp başka bir ödeme yöntemi seçin." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "Bu kategori zaten maksimum {maxChannelsPerCategory} kanal içeriyor." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Topluluk genelindeki moderatör eylemlerini takip edin." @@ -33953,6 +35526,11 @@ msgstr "Grup sahipliği {userName} adlı kişiye devredilsin mi?" msgid "Transfer ownership" msgstr "Sahipliği devret" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Topluluk sahipliği {user} adlı kişiye devredildi." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Yayın gizliliğini aç" msgid "Turn text smileys into emoji" msgstr "Metin emotikonlarını emojiye dönüştür" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Yetişkinlere yönelik içerik kapatıldı." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Yavaş modu kapattı." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "İçerik uyarısı kapatıldı." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Ayrılmış başlık kapatıldı." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Bu toplulukta üyenin mikrofonu kapatıldı." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Yetişkinlere yönelik içerik açıldı." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "İçerik uyarısı açıldı." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Ayrılmış başlığı açtı." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "Bu toplulukta üyenin mikrofonu tekrar açıldı." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Kapsamları kapatmak uygulamanın düzgün çalışmasını engelleyebilir." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "Ukraynaca" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Etkinlik günlükleri yüklenemedi" @@ -34859,6 +36482,7 @@ msgstr "Bilinmeyen hedef" msgid "unknown user" msgstr "bilinmeyen kullanıcı" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "bilinmeyen kullanıcı" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Yalnızca bu toplulukta kullanılır." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Vermont" msgid "Version" msgstr "Sürüm" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Çok yüksek" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Web kamerası" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Webhook oluşturuldu" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhook silindi" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Webhook adı" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhook güncellendi" diff --git a/fluxer_app/src/features/i18n/locales/uk/messages.po b/fluxer_app/src/features/i18n/locales/uk/messages.po index 3fe338002..a4c55c0c2 100644 --- a/fluxer_app/src/features/i18n/locales/uk/messages.po +++ b/fluxer_app/src/features/i18n/locales/uk/messages.po @@ -56,6 +56,31 @@ msgstr "{a} друкує..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} та {c} друкують..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} додав(-ла) перевизначення дозволів для {user} у {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} додав(-ла) перевизначення дозволів для @everyone у {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} додав(-ла) перевизначення дозволів для ролі {role} у {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} додав(-ла) стікер." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} додав(-ла) емодзі." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} додав дозволи каналу для {targetEntity} у {channelNode}." @@ -64,35 +89,200 @@ msgstr "{actor} додав дозволи каналу для {targetEntity} у msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} додав дозволи каналу для {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} додав(-ла) бота {target} як тимчасового учасника." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} додав(-ла) бота {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} додав бота {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} додав(-ла) емодзі {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} додав емодзі {namedTarget}." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} додав(-ла) стікер {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} додав стікер {namedTarget}." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} заблокував(-ла) {target} на {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} заблокував(-ла) {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} заблокував {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} змінив(-ла) для {target} заборону надсилати повідомлення, реагувати та приєднуватися до голосових каналів: діє до {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} змінив(-ла) псевдонім для {target} з {oldNick} на {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} змінив(-ла) перевизначення дозволів для категорії {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} змінив(-ла) перевизначення дозволів для каналу {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} змінив(-ла) перевизначення дозволів для каналу-посилання {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} змінив(-ла) перевизначення дозволів для текстового каналу {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} змінив(-ла) перевизначення дозволів для голосового каналу {channel}." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} змінив(-ла) персоналізовану URL-адресу з {oldCode} на {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} змінив(-ла) аватар свого профілю спільноти." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} змінив(-ла) банер свого профілю спільноти." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} змінив(-ла) біографію свого профілю спільноти на {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} змінив(-ла) свій псевдонім з {oldNick} на {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} створив(-ла) вебхук." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} створив(-ла) категорію {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} створив(-ла) канал {channel} у {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} створив(-ла) канал {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} створив канал {namedTarget}." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} створив(-ла) запрошення {code} для {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} створив(-ла) запрошення {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} створив запрошення {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} створив(-ла) канал-посилання {channel} у {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} створив(-ла) канал-посилання {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} створив роль {namedTarget}." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} створив(-ла) роль {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} створив(-ла) текстовий канал {channel} у {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} створив(-ла) текстовий канал {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} створив(-ла) голосовий канал {channel} у {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} створив(-ла) голосовий канал {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} створив(-ла) вебхук {name} у каналі {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} створив(-ла) вебхук {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} створив вебхук {namedTarget}." @@ -103,49 +293,209 @@ msgstr "{actor} створив вебхук {namedTarget}." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} видалив {0} {bulkCount, plural, one {повідомлення} few {повідомлення} many {повідомлень} other {повідомлень}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} видалив(-ла) {count, plural, one {# повідомлення} few {# повідомлення} many {# повідомлень} other {# повідомлень}} у {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} видалив(-ла) {count, plural, one {# повідомлення} few {# повідомлення} many {# повідомлень} other {# повідомлень}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} видалив(-ла) повідомлення в {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} видалив(-ла) повідомлення." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} видалив повідомлення{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} видалив(-ла) стікер." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} видалив(-ла) вебхук." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} видалив(-ла) емодзі." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} видалив кілька повідомлень{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} видалив(-ла) кілька повідомлень у {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} видалив(-ла) кілька повідомлень." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} видалив(-ла) категорію {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} видалив(-ла) канал {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} видалив канал {namedTarget}." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} видалив(-ла) емодзі {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} видалив емодзі {namedTarget}." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} видалив(-ла) запрошення {code} для {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} видалив(-ла) запрошення {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} видалив запрошення {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} видалив(-ла) канал-посилання {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} видалив роль {namedTarget}." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} видалив(-ла) роль {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} видалив(-ла) стікер {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} видалив стікер {namedTarget}." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} видалив(-ла) текстовий канал {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} видалив(-ла) голосовий канал {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} видалив(-ла) вебхук {name} з каналу {channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} видалив(-ла) вебхук {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} видалив вебхук {namedTarget}." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} відключив(-ла) {target} від каналу {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} відключив(-ла) {target} від голосового каналу." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} відключив {targetMember} від голосового каналу." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} відключився(-лася) від {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} відключився(-лася) від голосового каналу." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} надав(-ла) {target} роль {role}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} вигнав(-ла) {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} вигнав {targetMember}." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} знову дозволив(-ла) {target} чути інших у цій спільноті." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} зробив(-ла) зміну, яку ця версія застосунку не може відобразити." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} перемістив(-ла) {target} із {oldChannel} до {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} перемістив(-ла) {target} до {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} перемістив(-ла) {target} до іншого голосового каналу." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} перемістив {targetMember} до {channelNode}." @@ -154,16 +504,68 @@ msgstr "{actor} перемістив {targetMember} до {channelNode}." msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} перемістив {targetMember} до іншого голосового каналу." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} перейшов(-ла) з {oldChannel} до {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} перемістив(-ла) роль {role} нижче у списку учасників." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} перемістив(-ла) роль {role} нижче у списку ролей." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} перемістив(-ла) роль {role} вище у списку учасників." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} перемістив(-ла) роль {role} вище у списку ролей." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} перейшов(-ла) до {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} перейшов(-ла) до іншого голосового каналу." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} призупинив(-ла) запрошення." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} виконав дію аудиту щодо {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} закріпив(-ла) повідомлення в {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} закріпив(-ла) повідомлення." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} закріпив повідомлення{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} видалив неактивних учасників." @@ -179,19 +581,249 @@ msgstr "{actor} вилучив дозволи каналу для {targetEntity} msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} вилучив дозволи каналу для {targetEntity}." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} видалив(-ла) псевдонім {nick} у {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} видалив(-ла) перевизначення дозволів для {user} із каналу {channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} видалив(-ла) перевизначення дозволів для @everyone з каналу {channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} видалив(-ла) перевизначення дозволів для ролі {role} з каналу {channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} видалив(-ла) роль {role} у {target}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} зняв(-ла) тайм-аут для {target}." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} видалив(-ла) персоналізовану URL-адресу {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} видалив(-ла) акцентний колір свого профілю спільноти." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} видалив(-ла) аватар свого профілю спільноти." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} видалив(-ла) банер свого профілю спільноти." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} видалив(-ла) біографію свого профілю спільноти." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} видалив(-ла) займенники зі свого профілю спільноти." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} видалив(-ла) свій псевдонім {nick}." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} перейменував(-ла) категорію {oldName} на {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} перейменував(-ла) канал {oldName} на {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} перейменував(-ла) спільноту з {oldName} на {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} перейменував(-ла) емодзі {oldEmoji} на {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} перейменував(-ла) канал-посилання {oldName} на {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} перейменував(-ла) роль {oldName} на {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} перейменував(-ла) стікер {oldName} на {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} перейменував(-ла) текстовий канал {oldName} на {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} перейменував(-ла) голосовий канал {oldName} на {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} перейменував(-ла) вебхук з {oldName} на {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} скинув(-ла) позицію ролі {role} у списку учасників." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} відновив(-ла) запрошення." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} встановив(-ла) позицію у списку учасників для ролі {role}." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} встановив(-ла) для {target} псевдонім {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} встановив(-ла) персоналізовану URL-адресу {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} змінив(-ла) акцентний колір свого профілю спільноти на {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} встановив(-ла) аватар свого профілю спільноти." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} встановив(-ла) банер свого профілю спільноти." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} встановив(-ла) біографію свого профілю спільноти: {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} змінив(-ла) займенники у своєму профілі спільноти на {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} встановив(-ла) собі псевдонім {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} заборонив(-ла) {target} чути інших у цій спільноті." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} застосував(-ла) тайм-аут для {target} до {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} передав(-ла) право власності на спільноту користувачу {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} увімкнув(-ла) мікрофон {target} у цій спільноті." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} вимкнув(-ла) мікрофон {target} у цій спільноті." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} зняв(-ла) блокування з {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} розблокував {targetMember}." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} відкріпив(-ла) повідомлення в {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} відкріпив(-ла) повідомлення." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} відкріпив повідомлення{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} оновив(-ла) {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} оновив {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} оновив(-ла) стікер." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} оновив(-ла) вебхук." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} оновив(-ла) емодзі." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} оновив дозволи каналу для {targetEntity} у {channelNode}." @@ -204,35 +836,112 @@ msgstr "{actor} оновив дозволи каналу для {targetEntity}." msgid "{actor} updated roles for {targetMember}." msgstr "{actor} оновив ролі для {targetMember}." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} оновив(-ла) категорію {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} оновив(-ла) канал {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} оновив канал {namedTarget}." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} оновив налаштування спільноти." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} оновив(-ла) емодзі {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} оновив емодзі {namedTarget}." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} оновив(-ла) запрошення {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} оновив запрошення {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} оновив(-ла) канал-посилання {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} оновив(-ла) перевизначення дозволів для {user} у {channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} оновив(-ла) перевизначення дозволів для @everyone у {channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} оновив(-ла) перевизначення дозволів для ролі {role} у каналі {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} оновив роль {namedTarget}." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} оновив(-ла) роль {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} оновив(-ла) ролі для {target}." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} оновив(-ла) стікер {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} оновив стікер {namedTarget}." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} оновив(-ла) текстовий канал {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} оновив(-ла) голосовий канал {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} оновив(-ла) вебхук {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} оновив вебхук {namedTarget}." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} оновив(-ла) свій профіль спільноти." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# елемент} few {# елементи} many {# msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# учасник} few {# учасники} many {# учасників} other {# учасників}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# додатковий дозвіл} few {# додаткові дозволи} many {# додаткових дозволів} other {# додаткових дозволів}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# спільна спільнота} few {# спільні спільноти} many {# спільних спільнот} other {# спільних спільнот}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {Показати # пристрій} few {Пока msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Вийти з # пристрою} few {Вийти з # пристроїв} many {Вийти з # пристроїв} other {Вийти з # пристроїв}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {Запрошення можна використати # раз.} few {Запрошення можна використати # рази.} many {Запрошення можна використати # разів.} other {Запрошення можна використати # разу.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {Запрошення використали # раз.} few {Запрошення використали # рази.} many {Запрошення використали # разів.} other {Запрошення використали # разу.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "Канали {guildName}" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Активність" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Журнал дій" @@ -2713,10 +3437,60 @@ msgstr "Додано {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "Додано {length, plural, one {# посилання на локальний файл} few {# посилання на локальні файли} many {# посилань на локальні файли} other {# посилань на локальні файли}}." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "Додано фон вбудованого чату." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Додано банер спільноти." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Додано значок спільноти." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "Додано попередження про вміст із текстом {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Додано попередження про вміст." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "Додано аватар." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Додано фонове зображення для запрошень." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Додано ролі." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Додано аватар учасника в профілі спільноти." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Додано банер учасника в профілі спільноти." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "Додано роль {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Елементи керування вирівнюванням дост #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Усе <0/>, назавжди. Без рахунків, без поновлень." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Усі дії" @@ -3001,10 +3775,12 @@ msgstr "Усі мови" msgid "All members" msgstr "Усі учасники" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "За весь час" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Усі користувачі" @@ -3197,6 +3973,16 @@ msgstr "Дозволено {0} і скасовано дозвіл для {1}." msgid "Allowed {0}." msgstr "Дозволено {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "Дозволено {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Дозволено всім учасникам згадувати цю роль." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Кому дозволено дзвонити" @@ -3205,15 +3991,35 @@ msgstr "Кому дозволено дзвонити" msgid "Allowed everyone to mention this role." msgstr "Усім дозволено згадувати цю роль." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Дозволено гнучкі назви текстових каналів." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Кому дозволено запрошувати" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Дозволено іншим клонувати емодзі цієї спільноти." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Дозволено іншим клонувати стікери цієї спільноти." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Дозволені переспрямування" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Дозволено до {count, plural, one {# підключення} few {# підключень} many {# підключень} other {# підключень}} на учасника." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Блокувати учасників" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Блокувати учасників спільноти з можливістю видалити їхні нещодавні повідомлення." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Причина блокування" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Заблокувати користувача" msgid "Blocked" msgstr "Заблоковані" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Заборонено учаснику надсилати повідомлення, реагувати та приєднуватися до голосових каналів до {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Бот" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Додано бота" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Категорію видалено" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Категорія заповнена" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "По центру" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "По центру" @@ -6298,11 +7116,183 @@ msgstr "Змінити ім'я користувача" msgid "Changed nickname from {0} to {1}." msgstr "Змінено псевдонім з {0} на {1}." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Змінено повільний режим з {oldDuration} на {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "Змінено AFK-канал з {oldChannel} на {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "Змінено час очікування для AFK з {oldDuration} на {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "Змінено якість аудіо з {oldKbps} кбіт/с на {newKbps} кбіт/с." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Змінено аватар." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Змінено бітрейт на {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Змінено заборону учаснику надсилати повідомлення, реагувати та приєднуватися до голосових каналів: діє до {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Змінено фон вбудованого чату." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Змінено банер спільноти." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Змінено значок спільноти." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "Змінено кількість одночасних підключень на учасника з {oldCount} на {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "Змінено текст попередження про вміст з {oldText} на {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Змінено власну іконку ролі." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Змінено власний текст попередження з {oldText} на {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "Змінено налаштування сповіщень за замовчуванням з {oldSetting} на {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Змінено опис з {oldText} на {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Змінено фільтр відвертого контенту з {oldFilter} на {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Змінено вирівнювання фону запрошення з {oldAlignment} на {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Змінено фон запрошення." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "Змінено посилання з {oldUrl} на {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Змінено аватар учасника в профілі спільноти." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Змінено банер учасника в профілі спільноти." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "Змінено біографію учасника в профілі спільноти на {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "Змінено поріг історії повідомлень з {oldDate} на {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "Змінено назву з {oldName} на {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "Змінено псевдонім з {oldNick} на {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Змінено колір ролі з {oldColor} на {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Змінено значок ролі з {oldEmoji} на {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "Змінено системний канал з {oldChannel} на {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Змінено тему з {oldText} на {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "Змінено ліміт користувачів з {oldCount} на {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "Змінено персоналізовану URL-адресу з {oldCode} на {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Змінено рівень перевірки з {oldLevel} на {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "Змінено регіон голосового зв’язку з {oldRegion} на {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "канал" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Канал або категорія" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Перевизначення дозволів каналу додано" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Перевизначення дозволів каналу видалено" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Перевизначення дозволів каналу оновлено" @@ -7815,7 +8805,7 @@ msgstr "Спільноти з понад 250 учасниками автомат #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Видалити ваші повідомлення в цій розмо msgid "Deleted" msgstr "Видалено" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "Видалено нещодавню історію повідомлень учасника за {duration}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Видалений текст" msgid "Deleted your messages." msgstr "Ваші повідомлення видалено." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "видалена-категорія" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "видалений-канал" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "видалена-роль" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "Заборонено {0} і скасовано заборону для { msgid "Denied {0}." msgstr "Заборонено {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "Заборонено {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Вбудований вміст показано" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Клонування емодзі ввімкнено" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Емодзі створено" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Емодзі видалено" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Слоти для емодзі заповнені" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Емодзі оновлено" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Фільтрувати за датою створення облікового запису" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Фільтрувати за дією" @@ -14572,18 +15587,22 @@ msgstr "Фільтрувати за ролями" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Фільтрувати за користувачем" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Фільтрувати всіх" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Фільтрувати учасників без ролей" @@ -15890,6 +16909,11 @@ msgstr "Надано {0} та скасовано {1}." msgid "Granted {0}." msgstr "Надано {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "Надано {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Привіт, {username}! Сподіваємося, вам тут спо msgid "Hey, {username}, welcome aboard!" msgstr "Привіт, {username}, ласкаво просимо!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Приховано повідомлення про приєднання в системному каналі." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Приховано корону власника спільноти." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Сховати власну камеру?" msgid "Hide your own screen share?" msgstr "Сховати демонстрацію свого екрана?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Високий" @@ -17688,7 +18724,7 @@ msgstr "Запросити" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "Код запрошення: {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Запрошення створено" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Запрошення видалено" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Запрошення недоступне" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Запрошення оновлено" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (ліворуч)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Вирівняно ліворуч" @@ -18745,6 +19783,11 @@ msgstr "Дозволити програмам читання з екрана о msgid "Let the community self-moderate" msgstr "Дозволити спільноті модерувати себе" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Дозволено учаснику знову чути інших у цій спільноті." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Дозволяє власному CSS показувати прозорі області вікна після перезапуску десктопного застосунку." @@ -18815,6 +19858,16 @@ msgstr "Уподобано." msgid "Likes: <0>{countLabel}" msgstr "Уподобання: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "Дозволено згадувати цю роль лише учасникам, які мають дозвіл згадувати будь-яку роль." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Обмежено кількість користувачів у каналі до {count, plural, one {# користувача} few {# користувачів} many {# користувачів} other {# користувачів}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Луїзіана" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Низький" @@ -19204,6 +20259,11 @@ msgstr "Стандартний аудіопристрій macOS" msgid "macOS permissions" msgstr "Дозволи macOS" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Зроблено так, щоб канал успадковував налаштування контенту для дорослих." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Позначено емодзі як анімований." msgid "Marked emoji as static." msgstr "Позначено емодзі як статичний." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Позначено канал як такий, що містить контент для дорослих." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Позначено канал як такий, що не містить контенту для дорослих." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "Позначено учасника як постійного." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Зупинити відтворення" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Середній" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Середній розмір (за замовчуванням)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Учасник" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Дії з учасником {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Учасника заблоковано" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Учасника відключено" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Учасника вигнано" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Списки учасників тимчасово недоступні в цій спільноті" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Учасника переміщено" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Учасника не знайдено" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Ролі учасника оновлено" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Учасник з" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Учасника розблоковано" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Учасника оновлено" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Учасники вилучаються, коли вони офлайн, якщо їм не призначено роль." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Учасників видалено" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "Учасники без дозволу «{readMessageHistoryPermissionLabel}» можуть переглядати повідомлення, надіслані після цієї дати." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Учасники, вибрано" @@ -20077,8 +21149,10 @@ msgstr "Згадки про вас відображаються тут прот msgid "Mentions of you show up here for {retentionDays} days." msgstr "Згадки про вас відображаються тут протягом {retentionDays} днів." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Лише згадки" @@ -20104,7 +21178,7 @@ msgstr "повідомлення" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Повідомлення" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Налагодження повідомлення" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Повідомлення видалено" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Список повідомлень для {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Повідомлення закріплено" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Час повідомлення" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Повідомлення відкріплено" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Повідомлення та медіа" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Повідомлення видалено" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Модерація" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Тут відображатимуться дії модерації та зміни спільноти." @@ -20915,16 +21989,51 @@ msgstr "Перемістити до" msgid "Move to…" msgstr "Перемістити до…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Перенесено з {oldChannel} до {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Переміщено канал із категорії {oldCategory} до категорії {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Переміщено канал до категорії {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Переміщено канал до категорії {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "Переміщено роль нижче у списку учасників." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "Переміщено роль нижче у списку ролей." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Переміщено роль на позицію {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "Переміщено роль вище у списку учасників." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "Переміщено роль вище у списку ролей." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Нове повідомлення" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Нові повідомлення" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "Немає посилань на локальні файли" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Журнал поки порожній" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "Причина не вказана" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "Причину не вказано." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Без перетворення" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Без перетворення" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "Конструктор URL-адрес OAuth2" msgid "Objects" msgstr "Об'єкти" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Об'єкти" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Вимкнено" @@ -23523,6 +24636,21 @@ msgstr "Не вдалося завантажити вихідне повідом msgid "Original message was deleted" msgstr "Вихідне повідомлення видалено" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Початково заблокував(-ла) {user} {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Початково заблокував(-ла) {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Початково заблоковано {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Призупинено через зменшення руху. Увім msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "Призупинено через зменшення руху. Увімкніть, щоб GIF-файли відтворювалися." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Запрошення призупинено." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Безповоротно видалити свій обліковий з msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Назавжди видалити надіслані вами повідомлення у приватних чатах, групових чатах та спільнотах. Процес виконується у фоновому режимі, і ви отримаєте особисте повідомлення після його завершення." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Додано перевизначення дозволу" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Видалено перевизначення дозволів" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Оновлено перевизначення дозволів" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Готові оновити?" msgid "Real-time" msgstr "У реальному часі" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Причина" @@ -26291,26 +27440,166 @@ msgstr "Видалено роль {oldLabel}." msgid "Removed roles." msgstr "Видалено ролі." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "Видалено канал AFK." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Видалено аватар." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Вилучено канал з його категорії." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Вилучено канал із категорії {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Видалено фон вбудованого чату." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "Видалено банер спільноти." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Видалено значок спільноти." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "Видалено текст попередження про вміст." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Видалено попередження про вміст." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Видалено власну іконку ролі." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Видалено власний текст попередження." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Видалено опис {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Видалено фон запрошення." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Видалено посилання." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Видалено акцентний колір профілю учасника в спільноті." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Видалено аватар учасника з профілю спільноти." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Видалено банер учасника з профілю спільноти." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Видалено біографію учасника з профілю спільноти." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "Видалено займенники учасника з профілю спільноти." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Видалено поріг історії повідомлень." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "Видалено псевдонім {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "Видалено перевизначення для {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "Видалено роль {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Видалено колір ролі." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Видалено значок ролі." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Видалено канал правил." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "Видалено системний канал." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "Знято тайм-аут." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "Видалено тему {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Видалено емодзі Unicode." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Знято обмеження на кількість користувачів." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "Видалено персоналізовану URL-адресу {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Знято тайм-аут для {targetUserTag}" @@ -26381,6 +27670,11 @@ msgstr "Перейменовано стікер на {0}." msgid "Renamed the channel to {0}." msgstr "Перейменовано канал на {0}." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Спільноту перейменовано з {oldName} на {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Вимагати двофакторну автентифікацію д msgid "Required" msgstr "Обов'язково" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "Запроваджено вимогу двофакторної автентифікації (2FA) для дій модерації." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Скинути інтервал" msgid "Reset the connection limit." msgstr "Скинуто ліміт підключень." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "Скинуто позицію ролі у списку учасників." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Згадувати цю роль дозволено лише учасн msgid "Resubscribe" msgstr "Поновити підписку" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Відновлено запрошення." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Повернутися до входу" @@ -27330,6 +28639,11 @@ msgstr "Скасувати це запрошення? Цю дію не можн msgid "Revoked {0}." msgstr "Скасовано {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "Скасовано {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (праворуч)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Вирівняно праворуч" @@ -27408,7 +28724,7 @@ msgstr "Мелодія дзвінка" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Роль" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Колір ролі" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Роль створено" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Роль успішно створено" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Роль видалено" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "Потрібна назва ролі" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Роль оновлено" @@ -28930,11 +30246,21 @@ msgstr "Сесії" msgid "Set {fieldNode} to {0}." msgstr "Встановлено {fieldNode} на {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Встановлено власну іконку ролі." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Встановити власний статус" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Встановлено позицію ролі у списку учасників." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "Колір ролі встановлено на <0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "Встановлено повільний режим на {0} {seconds, plural, one {секунду} few {секунди} many {секунд} other {секунди}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Увімкнено повільний режим: {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Установити статус" msgid "Set the AFK channel to {0}." msgstr "Встановлено канал AFK на {0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "Встановлено канал AFK: {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "Час очікування неактивності встановлено на {0} с." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "Встановлено якість звуку на {kbps} кбіт/с." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "Змінено тип каналу на {0}." msgid "Set the connection limit to {0}." msgstr "Встановлено ліміт підключень на {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "Встановлено текст попередження про вміст: {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "Встановлено власний текст попередження: {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "Встановлено опис: {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "Встановлено вирівнювання заставки запрошення: {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "Встановлено посилання: {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "Встановлено акцентний колір профілю учасника в спільноті на {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "Встановлено біографію учасника в профілі спільноти: {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "Встановлено займенники для профілю учасника в спільноті: {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "Встановлено поріг історії повідомлень: {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "Встановлено псевдонім {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Задайте загальнодоступну назву продукту, колір теми та зображення, які відображатимуться в клієнтах." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "Встановлено колір ролі: {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "Встановлено значок ролі: {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "Встановлено канал правил на {0}." msgid "Set the system channel to {0}." msgstr "Встановлено системний канал на {0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "Встановлено системний канал: {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "Встановлено тему: {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "Встановлено ліміт користувачів на {0}." msgid "Set the vanity URL to {0}." msgstr "Встановлено персоналізовану URL-адресу на {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "Встановлено персоналізовану URL-адресу: {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "Встановлено голосовий регіон: {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "Встановлено автоматичний вибір голосового регіону." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Показувати банер глобального профілю в msgid "Show your Visionary as a regular subscription instead" msgstr "Натомість показувати Visionary як звичайну підписку" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Показано учасників із цією роллю в окремому розділі списку учасників." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Під час оформлення повернення коштів сталася помилка. Якщо це повториться, зверніться до служби підтримки." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Під час завантаження журналу дій сталася помилка." @@ -31105,6 +32531,11 @@ msgstr "Почати голосовий дзвінок" msgid "Start with computer" msgstr "Запускати разом з комп'ютером" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "Розпочато окреме відображення учасників із цією роллю." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "стікер" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "Не вдалося достатньо стиснути стікер" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Стікер створено" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Стікер видалено" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Слоти для стікерів заповнено" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Стікер оновлено" @@ -31412,6 +32843,46 @@ msgstr "Зупинити перегляд трансляції" msgid "Stop." msgstr "Стоп." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Припинено дозвіл на використання гнучких назв текстових каналів." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Більше не дозволено іншим клонувати емодзі цієї спільноти." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Більше не дозволено іншим клонувати стікери цієї спільноти." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Припинено окреме відображення учасників із цією роллю." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Припинено приховування повідомлень про приєднання в системному каналі." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Припинено приховування корони власника спільноти." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Припинено вимогу двофакторної автентифікації (2FA) для модерації." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Заборонено учаснику чути інших у цій спільноті." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Синхронізувати з категорією" msgid "Syntax highlighting" msgstr "Підсвічування синтаксису" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "Система" @@ -32449,6 +33922,16 @@ msgstr "Сталася помилка. Перевіряємо наявність msgid "The app should now be signed in to your account." msgstr "Тепер у застосунку має бути виконано вхід у ваш обліковий запис." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "Термін дії блокування вже минув {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "Термін дії блокування мав закінчитися {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "Бота додано до <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "Оновлення для комп'ютера завантажено. П msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "Завантажений файл збережено на вашому комп'ютері. Установіть його за допомогою звичайного менеджера пакунків." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "Емодзі завантажив(-ла) {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "Файл містить токен підтвердження, який ми отримаємо з <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "Файл, який ви намагаєтеся завантажити, msgid "The following people can't be added to this group DM:" msgstr "Цих людей не можна додати до цього групового чату:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "Запрошення створив(-ла) {user} {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "Запрошення створив(-ла) {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "Запрошення було створено {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "Запрошенням ніколи не користувалися." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "Термін дії запрошення мав закінчитися {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "Запрошення було налаштовано на необмежену кількість використань." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "Встановлено термін дії запрошення: {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "Запрошення було налаштовано для надання тимчасового членства." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "Запрошення було налаштовано без терміну дії." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "Мова, якою спілкується більшість вашої спільноти. Використовується для фільтрації результатів у Discovery." @@ -32518,6 +34051,11 @@ msgstr "Посилання, можливо, досі працює. Спробу msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "Перевірку контенту для дорослих скасовано. Можете закрити цю вкладку та повторити спробу в застосунку." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "Учасник більше не тимчасовий." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "Нова ціна вже запланована на {effectiveDate}." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "Новий голосовий канал повторно використовуватиме дозволи, ліміт користувачів і бітрейт із <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "Перевизначення дозволяло {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "Перевизначення забороняло {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "Сторінка, яку ви шукаєте, не існує або була переміщена." @@ -32565,6 +34113,11 @@ msgstr "Наданий redirect_uri не зареєстровано для ць msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "Наданий redirect_uri має використовувати HTTP або HTTPS." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "Роль надавала {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "Стікер завантажено як анімований." msgid "The sticker was uploaded as static." msgstr "Стікер завантажено як статичний." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "Стікер завантажив(-ла) {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "Система надала {target} роль {role}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "Система видалила роль {role} у користувача {target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "Ім'я користувача <0>{fluxerTag} вже зайняте. msgid "The verification code is invalid or expired." msgstr "Код підтвердження недійсний або прострочений." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "Вебхук створив(-ла) {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Ця картка не відповідає вашій країні виставлення рахунків, тому її не можна використовувати для цієї локалізованої валюти. Скористайтеся місцевою карткою або поверніться до {productName} та виберіть інший спосіб оплати." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "Ця категорія вже містить максимальну кількість каналів: {maxChannelsPerCategory}." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Відстежуйте дії модераторів у спільноті." @@ -33953,6 +35526,11 @@ msgstr "Передати право власності на групу кори msgid "Transfer ownership" msgstr "Передати право власності" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Право власності на спільноту передано користувачу {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Увімкнути конфіденційність трансляції msgid "Turn text smileys into emoji" msgstr "Увімкнути перетворення текстових смайликів на емодзі" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Вимкнено контент для дорослих." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Вимкнено повільний режим." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "Вимкнено попередження про вміст." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Вимкнено окремий банер." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Вимкнено мікрофон учасника в цій спільноті." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Увімкнено контент для дорослих." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "Увімкнено попередження про вміст." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Увімкнено окремий банер." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "Увімкнено мікрофон учасника в цій спільноті." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Вимкнення дозволів може призвести до некоректної роботи застосунку." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "Українська" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Не вдалося завантажити журнали активності" @@ -34859,6 +36482,7 @@ msgstr "Невідомий об'єкт" msgid "unknown user" msgstr "невідомий користувач" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "невідомий користувач" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Використовується лише в цій спільноті." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Вермонт" msgid "Version" msgstr "Версія" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Дуже високий" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Вебкамера" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Вебхук" @@ -37681,13 +39308,13 @@ msgstr "Вебхук {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Вебхук створено" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Вебхук видалено" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Назва вебхука" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Вебхук оновлено" diff --git a/fluxer_app/src/features/i18n/locales/vi/messages.po b/fluxer_app/src/features/i18n/locales/vi/messages.po index 1c50bb723..fcb6e2e2e 100644 --- a/fluxer_app/src/features/i18n/locales/vi/messages.po +++ b/fluxer_app/src/features/i18n/locales/vi/messages.po @@ -56,6 +56,31 @@ msgstr "{a} đang nhập..." msgid "{a}, {b} and {c} are typing..." msgstr "{a}, {b} và {c} đang nhập..." +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} đã thêm quyền ghi đè cho {user} trong {channel}." + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} đã thêm một quyền ghi đè cho @everyone trong {channel}." + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} đã thêm quyền ghi đè cho vai trò {role} trong {channel}." + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} đã thêm một nhãn dán." + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} đã thêm một biểu tượng cảm xúc." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} đã thêm quyền kênh cho {targetEntity} trong {channelNode}." @@ -64,35 +89,200 @@ msgstr "{actor} đã thêm quyền kênh cho {targetEntity} trong {channelNode}. msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} đã thêm quyền kênh cho {targetEntity}." +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} đã thêm bot {target} với tư cách thành viên tạm thời." + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} đã thêm bot {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} đã thêm bot {targetMember}." +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} đã thêm biểu tượng cảm xúc {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} đã thêm biểu tượng cảm xúc {namedTarget}." +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} đã thêm nhãn dán {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} đã thêm nhãn dán {namedTarget}." +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} đã cấm {target} trong {duration}." + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} đã cấm {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} đã cấm {targetMember}." +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} đã thay đổi thời gian chặn {target} gửi tin nhắn, bày tỏ cảm xúc và tham gia kênh thoại thành kết thúc vào {date}." + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} đã đổi biệt danh của {target} từ {oldNick} thành {newNick}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} đã thay đổi các quyền ghi đè của danh mục {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} đã thay đổi quyền ghi đè của kênh {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} đã thay đổi các quyền ghi đè của kênh liên kết {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} đã thay đổi quyền ghi đè của kênh văn bản {channel}." + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} đã thay đổi các quyền ghi đè của kênh thoại {channel}." + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} đã đổi URL tùy chỉnh từ {oldCode} thành {newCode}." + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} đã thay đổi ảnh đại diện hồ sơ cộng đồng của họ." + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} đã thay đổi ảnh bìa hồ sơ cộng đồng của họ." + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} đã thay đổi tiểu sử hồ sơ cộng đồng của họ thành {text}." + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} đã đổi biệt danh của mình từ {oldNick} thành {newNick}." + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} đã tạo một webhook." + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} đã tạo danh mục {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} đã tạo kênh {channel} trong {category}." + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} đã tạo kênh {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} đã tạo kênh {namedTarget}." +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} đã tạo liên kết mời {code} cho {channel}." + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} đã tạo liên kết mời {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} đã tạo lời mời {namedTarget}{0}." +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} đã tạo kênh liên kết {channel} trong {category}." + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} đã tạo kênh liên kết {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} đã tạo vai trò {namedTarget}." +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} đã tạo vai trò {role}." + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} đã tạo kênh văn bản {channel} trong {category}." + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} đã tạo kênh văn bản {channel}." + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} đã tạo kênh thoại {channel} trong {category}." + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} đã tạo kênh thoại {channel}." + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} đã tạo webhook {name} trong {channel}." + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} đã tạo webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} đã tạo webhook {namedTarget}." @@ -103,49 +293,209 @@ msgstr "{actor} đã tạo webhook {namedTarget}." msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} đã xóa {0} {bulkCount, plural, one {tin nhắn} other {tin nhắn}}{1}." +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} đã xóa {count, plural, one {1 tin nhắn} other {# tin nhắn}} trong {channel}." + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} đã xóa {count, plural, one {# tin nhắn} other {# tin nhắn}}." + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} đã xóa một tin nhắn trong {channel}." + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} đã xóa một tin nhắn." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} đã xóa một tin nhắn{0}." +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} đã xóa một nhãn dán." + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} đã xóa một webhook." + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} đã xóa một biểu tượng cảm xúc." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} đã xóa nhiều tin nhắn{0}." +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} đã xóa một số tin nhắn trong {channel}." + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} đã xóa một số tin nhắn." + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} đã xóa danh mục {channel}." + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} đã xóa kênh {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} đã xóa kênh {namedTarget}." +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} đã xóa biểu tượng cảm xúc {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} đã xóa biểu tượng cảm xúc {namedTarget}." +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} đã xóa lời mời {code} cho {channel}." + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} đã xóa lời mời {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} đã xóa lời mời {namedTarget}{0}." +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} đã xóa kênh liên kết {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} đã xóa vai trò {namedTarget}." +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} đã xóa vai trò {role}." + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} đã xóa nhãn dán {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} đã xóa nhãn dán {namedTarget}." +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} đã xóa kênh văn bản {channel}." + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} đã xóa kênh thoại {channel}." + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} đã xóa webhook {name} khỏi {channel}." + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} đã xóa webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} đã xóa webhook {namedTarget}." +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} đã ngắt kết nối {target} khỏi {channel}." + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} đã ngắt kết nối {target} khỏi kênh thoại." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} đã ngắt kết nối {targetMember} khỏi kênh thoại." +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} đã ngắt kết nối khỏi {channel}." + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} đã ngắt kết nối khỏi thoại." + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} đã giao vai trò {role} cho {target}." + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} đã đuổi {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} đã đuổi {targetMember}." +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} đã cho phép {target} nghe lại người khác trong cộng đồng này." + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} đã thực hiện một thay đổi mà phiên bản ứng dụng này không thể hiển thị." + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} đã di chuyển {target} từ {oldChannel} sang {newChannel}." + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} đã chuyển {target} đến {channel}." + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} đã chuyển {target} sang một kênh thoại khác." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} đã chuyển {targetMember} đến {channelNode}." @@ -154,16 +504,68 @@ msgstr "{actor} đã chuyển {targetMember} đến {channelNode}." msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} đã chuyển {targetMember} sang kênh thoại khác." +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} đã di chuyển từ {oldChannel} sang {newChannel}." + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} đã di chuyển vai trò {role} xuống dưới trong danh sách thành viên." + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} đã di chuyển vai trò {role} xuống dưới trong danh sách vai trò." + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} đã di chuyển vai trò {role} lên trên trong danh sách thành viên." + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} đã di chuyển vai trò {role} lên trên trong danh sách vai trò." + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} đã chuyển đến {channel}." + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} đã chuyển sang một kênh thoại khác." + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} đã tạm dừng lời mời." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} đã thực hiện một hành động với {targetEntity}." +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} đã ghim một tin nhắn trong {channel}." + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} đã ghim một tin nhắn." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} đã ghim một tin nhắn{0}." +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} đã xóa thành viên không hoạt động." @@ -179,19 +581,249 @@ msgstr "{actor} đã xóa quyền kênh của {targetEntity} trong {channelNode} msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} đã xóa quyền kênh của {targetEntity}." +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} đã xóa biệt danh {nick} của {target}." + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} đã xóa quyền ghi đè cho {user} khỏi {channel}." + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} đã xóa quyền ghi đè cho @everyone khỏi {channel}." + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} đã xóa quyền ghi đè cho vai trò {role} khỏi {channel}." + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} đã gỡ bỏ vai trò {role} khỏi {target}." + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} đã gỡ tạm dừng cho {target}." + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} đã xóa URL tùy chỉnh {code}." + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} đã xóa màu nhấn hồ sơ cộng đồng của họ." + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} đã xóa ảnh đại diện hồ sơ cộng đồng của họ." + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} đã xóa ảnh bìa hồ sơ cộng đồng của họ." + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} đã xóa tiểu sử hồ sơ cộng đồng của họ." + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} đã xóa đại từ nhân xưng trong hồ sơ cộng đồng của họ." + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} đã xóa biệt danh {nick} của họ." + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} đã đổi tên danh mục {oldName} thành {newName}." + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} đã đổi tên kênh {oldName} thành {newName}." + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} đã đổi tên cộng đồng từ {oldName} thành {newName}." + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} đã đổi tên biểu tượng cảm xúc {oldEmoji} thành {newEmoji}." + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} đã đổi tên kênh liên kết từ {oldName} thành {newName}." + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} đã đổi tên vai trò {oldName} thành {newName}." + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} đã đổi tên nhãn dán từ {oldName} thành {newName}." + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} đã đổi tên kênh văn bản {oldName} thành {newName}." + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} đã đổi tên kênh thoại {oldName} thành {newName}." + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} đã đổi tên webhook {oldName} thành {newName}." + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} đã đặt lại vị trí danh sách thành viên cho vai trò {role}." + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} đã bật lại lời mời." + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} đã đặt vị trí danh sách thành viên cho vai trò {role}." + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} đã đặt biệt danh của {target} thành {nick}." + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} đã đặt URL tùy chỉnh thành {code}." + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} đã đặt màu nhấn cho hồ sơ cộng đồng của họ thành {color}." + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} đã đặt ảnh đại diện hồ sơ cộng đồng của họ." + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} đã đặt ảnh bìa hồ sơ cộng đồng của họ." + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} đã đặt tiểu sử hồ sơ cộng đồng của họ thành {text}." + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} đã đặt đại từ nhân xưng trong hồ sơ cộng đồng của họ thành {text}." + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} đã đặt biệt danh của họ thành {nick}." + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} đã ngăn {target} nghe người khác trong cộng đồng này." + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} đã tạm dừng {target} đến {date}." + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} đã chuyển quyền sở hữu cộng đồng cho {user}." + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} đã bật lại micrô của {target} trong cộng đồng này." + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} đã tắt micrô của {target} trong cộng đồng này." + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} đã bỏ cấm {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} đã bỏ cấm {targetMember}." +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} đã bỏ ghim một tin nhắn trong {channel}." + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} đã bỏ ghim một tin nhắn." + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} đã bỏ ghim một tin nhắn{0}." +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} đã cập nhật {target}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} đã cập nhật {targetMember}." +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} đã cập nhật một nhãn dán." + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} đã cập nhật một webhook." + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} đã cập nhật một biểu tượng cảm xúc." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} đã cập nhật quyền kênh cho {targetEntity} trong {channelNode}." @@ -204,35 +836,112 @@ msgstr "{actor} đã cập nhật quyền kênh cho {targetEntity}." msgid "{actor} updated roles for {targetMember}." msgstr "{actor} đã cập nhật vai trò cho {targetMember}." +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} đã cập nhật danh mục {channel}." + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} đã cập nhật kênh {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} đã cập nhật kênh {namedTarget}." +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} đã cập nhật cài đặt cộng đồng." +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} đã cập nhật biểu tượng cảm xúc {emoji}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} đã cập nhật biểu tượng cảm xúc {namedTarget}." +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} đã cập nhật lời mời {code}." + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} đã cập nhật lời mời {namedTarget}{0}." +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} đã cập nhật kênh liên kết {channel}." + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} đã cập nhật quyền ghi đè cho {user} trong {channel}." + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} đã cập nhật quyền ghi đè cho @everyone trong {channel}." + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} đã cập nhật quyền ghi đè cho vai trò {role} trong {channel}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} đã cập nhật vai trò {namedTarget}." +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} đã cập nhật vai trò {role}." + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} đã cập nhật vai trò của {target}." + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} đã cập nhật nhãn dán {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} đã cập nhật nhãn dán {namedTarget}." +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} đã cập nhật kênh văn bản {channel}." + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} đã cập nhật kênh thoại {channel}." + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} đã cập nhật webhook {name}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} đã cập nhật webhook {namedTarget}." +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} đã cập nhật hồ sơ cộng đồng của họ." + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# mục} other {# mục}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# thành viên} other {# thành viên}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {# quyền khác} other {# quyền khác}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# cộng đồng chung} other {# cộng đồng chung}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {Hiển thị # thiết bị} other {Hiển thị # msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {Đăng xuất # thiết bị} other {Đăng xuất # thiết bị}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {Liên kết mời này chỉ được dùng # lần.} other {Liên kết mời này chỉ được dùng # lần.}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {Liên kết mời đã được sử dụng # lần.} other {Liên kết mời đã được sử dụng # lần.}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "Kênh của {guildName}" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "Hoạt động" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "Nhật ký hoạt động" @@ -2713,10 +3437,60 @@ msgstr "Đã thêm {0}." msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "Đã thêm {length, plural, one {# tham chiếu tệp cục bộ} other {# tham chiếu tệp cục bộ}}." +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "Đã thêm ảnh nền nhúng trò chuyện." + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "Đã thêm ảnh bìa cộng đồng." + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "Đã thêm biểu tượng cộng đồng." + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "Đã thêm cảnh báo nội dung với văn bản {text}." + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "Đã thêm cảnh báo nội dung." + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "Đã thêm ảnh đại diện." + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "Đã thêm ảnh nền lời mời." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "Đã thêm vai trò." +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "Đã thêm ảnh đại diện hồ sơ cộng đồng của thành viên." + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "Đã thêm ảnh bìa hồ sơ cộng đồng của thành viên." + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "Đã thêm vai trò {role}." + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "Tùy chọn căn chỉnh chỉ khả dụng trên màn hình rộng hơn #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "Tất cả <0/>, mãi mãi. Không tính phí, không gia hạn." #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "Tất cả hành động" @@ -3001,10 +3775,12 @@ msgstr "Tất cả ngôn ngữ" msgid "All members" msgstr "Tất cả thành viên" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "Toàn bộ thời gian" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "Tất cả người dùng" @@ -3197,6 +3973,16 @@ msgstr "Đã cho phép {0} và gỡ bỏ quyền cho phép đối với {1}." msgid "Allowed {0}." msgstr "Đã cho phép {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "Đã cho phép {permissions}." + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "Đã cho phép tất cả thành viên nhắc đến vai trò này." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "Người gọi được phép" @@ -3205,15 +3991,35 @@ msgstr "Người gọi được phép" msgid "Allowed everyone to mention this role." msgstr "Đã cho phép mọi người nhắc đến vai trò này." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "Đã cho phép đặt tên kênh văn bản linh hoạt." + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "Lời mời được phép" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "Đã cho phép người khác nhân bản biểu tượng cảm xúc của cộng đồng này." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "Đã cho phép người khác nhân bản nhãn dán của cộng đồng này." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "Chuyển hướng được phép" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "Đã cho phép tối đa {count, plural, one {# kết nối} other {# kết nối}} mỗi thành viên." + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "Cấm thành viên" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "Cấm thành viên khỏi cộng đồng, với tùy chọn xóa tin nhắn gần đây của họ." +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "Lý do cấm" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "Chặn người dùng" msgid "Blocked" msgstr "Đã chặn" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "Đã chặn thành viên gửi tin nhắn, bày tỏ cảm xúc và tham gia kênh thoại cho đến {date}." + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "Bot" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "Đã thêm bot" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "Đã xóa danh mục" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "Danh mục đã đầy" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "Căn giữa" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "Căn giữa" @@ -6298,11 +7116,183 @@ msgstr "Đổi tên người dùng" msgid "Changed nickname from {0} to {1}." msgstr "Đã đổi biệt danh từ {0} thành {1}." +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "Đã thay đổi chế độ chậm từ {oldDuration} thành {newDuration}." + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "Đã thay đổi kênh AFK từ {oldChannel} sang {newChannel}." + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "Đã thay đổi thời gian chờ AFK từ {oldDuration} thành {newDuration}." + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "Đã thay đổi chất lượng âm thanh từ {oldKbps} kbps thành {newKbps} kbps." + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "Đã thay đổi ảnh đại diện." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "Đã thay đổi tốc độ bit thành {0}." +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "Đã thay đổi thời gian chặn gửi tin nhắn, bày tỏ cảm xúc và tham gia kênh thoại thành kết thúc vào {date}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "Đã thay đổi ảnh nền nhúng trò chuyện." + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "Đã thay đổi ảnh bìa cộng đồng." + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "Đã thay đổi biểu tượng cộng đồng." + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "Đã thay đổi số kết nối mỗi thành viên từ {oldCount} thành {newCount}." + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "Đã thay đổi văn bản cảnh báo nội dung từ {oldText} thành {newText}." + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "Đã thay đổi biểu tượng tùy chỉnh của vai trò." + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "Đã thay đổi văn bản cảnh báo tùy chỉnh từ {oldText} thành {newText}." + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "Đã thay đổi cài đặt thông báo mặc định từ {oldSetting} sang {newSetting}." + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "Đã thay đổi mô tả từ {oldText} thành {newText}." + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "Đã thay đổi bộ lọc nội dung nhạy cảm từ {oldFilter} sang {newFilter}." + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "Đã thay đổi căn chỉnh ảnh nền lời mời từ {oldAlignment} sang {newAlignment}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "Đã thay đổi ảnh nền lời mời." + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "Đã thay đổi liên kết từ {oldUrl} sang {newUrl}." + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "Đã thay đổi ảnh đại diện hồ sơ cộng đồng của thành viên." + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "Đã thay đổi ảnh bìa hồ sơ cộng đồng của thành viên." + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "Đã thay đổi tiểu sử hồ sơ cộng đồng của thành viên thành {text}." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "Đã thay đổi ngưỡng lịch sử tin nhắn từ {oldDate} thành {newDate}." + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "Đã đổi tên từ {oldName} thành {newName}." + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "Đã đổi biệt danh từ {oldNick} thành {newNick}." + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "Đã đổi màu vai trò từ {oldColor} sang {newColor}." + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "Đã đổi biểu tượng vai trò từ {oldEmoji} thành {newEmoji}." + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "Đã thay đổi kênh hệ thống từ {oldChannel} sang {newChannel}." + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "Đã đổi chủ đề từ {oldText} thành {newText}." + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "Đã thay đổi giới hạn người dùng từ {oldCount} thành {newCount}." + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "Đã thay đổi URL tùy chỉnh từ {oldCode} thành {newCode}." + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "Đã thay đổi cấp độ xác minh từ {oldLevel} thành {newLevel}." + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "Đã thay đổi khu vực thoại từ {oldRegion} sang {newRegion}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "kênh" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "Kênh hoặc danh mục" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "Đã thêm quyền ghi đè kênh" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "Đã xóa quyền ghi đè kênh" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "Đã cập nhật quyền ghi đè kênh" @@ -7815,7 +8805,7 @@ msgstr "Các cộng đồng có hơn 250 người sẽ tự động chuyển san #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "Xóa tin nhắn của bạn trong cuộc trò chuyện này?" msgid "Deleted" msgstr "Đã xóa" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "Đã xóa lịch sử tin nhắn gần đây của thành viên trong {duration}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "Văn bản đã xóa" msgid "Deleted your messages." msgstr "Đã xóa tin nhắn của bạn." +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "danh-mục-đã-xóa" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "kênh-đã-xóa" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "vai-trò-đã-xóa" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "Đã từ chối {0} và gỡ bỏ từ chối cho {1}." msgid "Denied {0}." msgstr "Đã từ chối {0}." +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "Đã từ chối {permissions}." + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "Đã hiện lại nội dung nhúng" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "Đã bật sao chép biểu tượng cảm xúc" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "Đã tạo biểu tượng cảm xúc" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "Đã xóa biểu tượng cảm xúc" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "Ô biểu tượng cảm xúc đã đầy" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "Đã cập nhật biểu tượng cảm xúc" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "Lọc theo ngày tạo tài khoản" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "Lọc theo hành động" @@ -14572,18 +15587,22 @@ msgstr "Lọc theo vai trò" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "Lọc theo người dùng" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "Lọc tất cả" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "Lọc thành viên chưa có vai trò" @@ -15890,6 +16909,11 @@ msgstr "Đã cấp {0} và thu hồi {1}." msgid "Granted {0}." msgstr "Đã cấp {0}." +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "Đã cấp {permissions}." + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "Chào bạn, {username}! Chúc bạn có thời gian vui vẻ nhé." msgid "Hey, {username}, welcome aboard!" msgstr "Chào mừng {username} đến với cộng đồng!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "Đã ẩn tin nhắn tham gia trong kênh hệ thống." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "Đã ẩn vương miện chủ sở hữu cộng đồng." + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "Ẩn camera của bạn?" msgid "Hide your own screen share?" msgstr "Ẩn chia sẻ màn hình của bạn?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "Cao" @@ -17688,7 +18724,7 @@ msgstr "Mời" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "Mã mời là {0}." #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "Đã tạo lời mời" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "Đã xóa lời mời" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "Lời mời không khả dụng" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "Đã cập nhật lời mời" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "{keyName} (trái)" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "Căn trái" @@ -18745,6 +19783,11 @@ msgstr "Cho phép trình đọc màn hình thông báo tin nhắn mới khi chú msgid "Let the community self-moderate" msgstr "Để cộng đồng tự kiểm duyệt" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "Đã cho phép thành viên nghe lại người khác trong cộng đồng này." + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "Cho phép CSS tùy chỉnh hiển thị các vùng cửa sổ trong suốt sau khi khởi động lại ứng dụng trên máy tính." @@ -18815,6 +19858,16 @@ msgstr "Đã thích." msgid "Likes: <0>{countLabel}" msgstr "Lượt thích: <0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "Đã giới hạn lượt nhắc đến vai trò này cho những thành viên có quyền nhắc đến bất kỳ vai trò nào." + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "Đã giới hạn kênh tối đa {count, plural, one {# người dùng} other {# người dùng}}." + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "Louisiana" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "Thấp" @@ -19204,6 +20259,11 @@ msgstr "Mặc định của macOS" msgid "macOS permissions" msgstr "Quyền của macOS" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "Đã đặt kênh kế thừa cài đặt nội dung người lớn." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "Đã đánh dấu biểu tượng cảm xúc là ảnh động." msgid "Marked emoji as static." msgstr "Đã đánh dấu biểu tượng cảm xúc là tĩnh." +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "Đã đánh dấu kênh là chứa nội dung người lớn." + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "Đã đánh dấu kênh là không chứa nội dung người lớn." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "Đã đánh dấu thành viên là vĩnh viễn." @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "Dừng phát" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "Trung bình" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "Cỡ vừa (mặc định)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "Thành viên" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "Thao tác với thành viên {displayName}" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "Đã cấm thành viên" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "Đã ngắt kết nối thành viên" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "Đã đuổi thành viên" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "Danh sách thành viên tạm thời không khả dụng trong cộng đồng này" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "Đã chuyển thành viên" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "Không tìm thấy thành viên" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "Đã cập nhật vai trò thành viên" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "Thành viên từ" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "Đã bỏ cấm thành viên" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "Đã cập nhật thành viên" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "Thành viên sẽ bị xóa khỏi cộng đồng khi ngoại tuyến trừ khi được cấp vai trò." #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "Đã xóa thành viên không hoạt động" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "Thành viên không có quyền {readMessageHistoryPermissionLabel} có thể xem tin nhắn được gửi sau ngày này." #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "Thành viên, đã chọn" @@ -20077,8 +21149,10 @@ msgstr "Các lượt nhắc đến bạn sẽ hiển thị ở đây trong {rece msgid "Mentions of you show up here for {retentionDays} days." msgstr "Các lượt nhắc đến bạn sẽ hiển thị ở đây trong {retentionDays} ngày." +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "Chỉ nhắc đến" @@ -20104,7 +21178,7 @@ msgstr "tin nhắn" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "Tin nhắn" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "Gỡ lỗi tin nhắn" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "Đã xóa tin nhắn" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "Danh sách tin nhắn cho {channelName}" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "Đã ghim tin nhắn" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "Thời gian tin nhắn" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "Đã bỏ ghim tin nhắn" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "Tin nhắn & phương tiện" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "Đã xóa nhiều tin nhắn" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "Kiểm duyệt" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "Các hành động kiểm duyệt và thay đổi cộng đồng sẽ hiển thị ở đây." @@ -20915,16 +21989,51 @@ msgstr "Chuyển đến" msgid "Move to…" msgstr "Chuyển đến…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "Đã chuyển từ {oldChannel} sang {newChannel}." + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "Đã di chuyển kênh từ danh mục {oldCategory} sang danh mục {newCategory}." + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "Đã chuyển kênh vào danh mục {category}." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "Đã chuyển kênh sang danh mục {0}." +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "Đã chuyển vai trò xuống dưới trong danh sách thành viên." + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "Đã chuyển vai trò xuống dưới trong danh sách vai trò." + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "Đã di chuyển vai trò đến vị trí {0}." +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "Đã di chuyển vai trò lên trên trong danh sách thành viên." + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "Đã di chuyển vai trò lên trong danh sách vai trò." + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "Tin nhắn mới" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "Tin nhắn mới" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "Không có tệp cục bộ nào được tham chiếu" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "Chưa có nhật ký" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "Không có lý do" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "Không có lý do nào được cung cấp." @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "Không chuyển đổi" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "Không chuyển đổi" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "Trình tạo URL OAuth2" msgid "Objects" msgstr "Đồ vật" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "Đồ vật" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "Tắt" @@ -23523,6 +24636,21 @@ msgstr "Không tải được tin nhắn gốc" msgid "Original message was deleted" msgstr "Tin nhắn gốc đã bị xóa" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "Ban đầu bị cấm bởi {user} vào {date}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "Ban đầu bị cấm bởi {user}." + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "Ban đầu bị cấm vào {date}." + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "Đã tạm dừng do giảm chuyển động. Bật để tiếp tục p msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "Đã tạm dừng do giảm chuyển động. Bật để tiếp tục phát ảnh GIF." +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "Đã tạm dừng lời mời." + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "Xóa vĩnh viễn tài khoản và tất cả dữ liệu liên quan. Th msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "Xóa vĩnh viễn các tin nhắn bạn đã gửi trong tin nhắn trực tiếp, tin nhắn nhóm và cộng đồng. Thao tác này chạy ngầm và bạn sẽ nhận được tin nhắn trực tiếp khi hoàn tất." +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "Quyền ghi đè đã được thêm" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "Quyền ghi đè đã bị xóa" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "Quyền ghi đè đã được cập nhật" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "Sẵn sàng nâng cấp?" msgid "Real-time" msgstr "Thời gian thực" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "Lý do" @@ -26291,26 +27440,166 @@ msgstr "Đã xóa vai trò {oldLabel}." msgid "Removed roles." msgstr "Đã xóa vai trò." +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "Đã xóa kênh AFK." + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "Đã xóa ảnh đại diện." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "Đã xóa kênh khỏi danh mục." +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "Đã chuyển kênh ra khỏi danh mục {category}." + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "Đã xóa ảnh nền nhúng trò chuyện." + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "Đã xóa ảnh bìa cộng đồng." + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "Đã xóa biểu tượng cộng đồng." + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "Đã xóa văn bản cảnh báo nội dung." + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "Đã xóa cảnh báo nội dung." + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "Đã xóa biểu tượng tùy chỉnh của vai trò." + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "Đã xóa văn bản cảnh báo tùy chỉnh." + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "Đã xóa mô tả {text}." + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "Đã xóa ảnh nền lời mời." + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "Đã xóa liên kết." + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "Đã xóa màu nhấn hồ sơ cộng đồng của thành viên." + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "Đã xóa ảnh đại diện hồ sơ cộng đồng của thành viên." + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "Đã xóa ảnh bìa hồ sơ cộng đồng của thành viên." + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "Đã xóa tiểu sử hồ sơ cộng đồng của thành viên." + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "Đã xóa đại từ nhân xưng của thành viên khỏi hồ sơ cộng đồng." + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "Đã xóa ngưỡng lịch sử tin nhắn." + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "Đã xóa biệt danh {nick}." + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "Đã xóa quyền ghi đè cho {permissions}." + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "Đã xóa vai trò {role}." + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "Đã xóa màu của vai trò." + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "Đã xóa biểu tượng vai trò." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "Đã xóa kênh quy tắc." +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "Đã xóa kênh hệ thống." +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "Đã gỡ tạm dừng." + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "Đã xóa chủ đề {text}." + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "Đã xóa biểu tượng cảm xúc Unicode." +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "Đã xóa giới hạn người dùng." +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "Đã xóa URL tùy chỉnh {code}." + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "Đã gỡ tạm dừng cho {targetUserTag}" @@ -26381,6 +27670,11 @@ msgstr "Đã đổi tên nhãn dán thành {0}." msgid "Renamed the channel to {0}." msgstr "Đã đổi tên kênh thành {0}." +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "Đã đổi tên cộng đồng từ {oldName} thành {newName}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "Yêu cầu xác thực hai yếu tố cho người kiểm duyệt trư msgid "Required" msgstr "Bắt buộc" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "Đã yêu cầu bật 2FA để thực hiện hành động kiểm duyệt." + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "Đặt lại giãn cách" msgid "Reset the connection limit." msgstr "Đã đặt lại giới hạn kết nối." +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "Đã đặt lại vị trí của vai trò trong danh sách thành viên." + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "Đã giới hạn việc nhắc đến vai trò này cho các thành vi msgid "Resubscribe" msgstr "Đăng ký lại" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "Đã bật lại lời mời." + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "Quay lại đăng nhập" @@ -27330,6 +28639,11 @@ msgstr "Thu hồi lời mời này? Không thể hoàn tác." msgid "Revoked {0}." msgstr "Đã thu hồi {0}." +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "Đã thu hồi {permissions}." + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "{keyName} (phải)" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "Căn phải" @@ -27408,7 +28724,7 @@ msgstr "Nhạc chuông" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "Vai trò" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "Màu vai trò" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "Đã tạo vai trò" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "Đã tạo vai trò thành công" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "Đã xóa vai trò" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "Tên vai trò là bắt buộc" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "Đã cập nhật vai trò" @@ -28930,11 +30246,21 @@ msgstr "Phiên hoạt động" msgid "Set {fieldNode} to {0}." msgstr "Đặt {fieldNode} thành {0}." +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "Đã đặt biểu tượng tùy chỉnh cho vai trò." + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "Đặt trạng thái tùy chỉnh" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "Đã đặt vị trí của vai trò trong danh sách thành viên." + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "Đặt màu vai trò thành <0>{hex} <1/>." msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "Đặt chế độ chậm thành {0} {seconds, plural, one {giây} other {giây}}." +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "Đã đặt chế độ chậm thành {duration}." + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "Đặt trạng thái" msgid "Set the AFK channel to {0}." msgstr "Đặt kênh AFK thành {0}." +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "Đã đặt kênh AFK thành {channel}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "Đặt thời gian chờ AFK thành {0} giây." +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "Đã đặt chất lượng âm thanh thành {kbps} kbps." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "Đặt loại kênh thành {0}." msgid "Set the connection limit to {0}." msgstr "Đặt giới hạn kết nối thành {0}." +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "Đã đặt văn bản cảnh báo nội dung thành {text}." + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "Đã đặt văn bản cảnh báo tùy chỉnh thành {text}." + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "Đã đặt mô tả thành {text}." + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "Đặt căn chỉnh ảnh bìa lời mời thành {0}." +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "Đã đặt liên kết thành {url}." + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "Đã đặt màu nhấn hồ sơ cộng đồng của thành viên thành {color}." + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "Đã đặt tiểu sử hồ sơ cộng đồng của thành viên thành {text}." + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "Đã đặt đại từ nhân xưng trong hồ sơ cộng đồng của thành viên thành {text}." + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "Đã đặt ngưỡng lịch sử tin nhắn thành {date}." + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "Đã đặt biệt danh thành {nick}." + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "Đặt tên sản phẩm công khai, màu chủ đề và các tệp hình ảnh mà ứng dụng hiển thị." +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "Đã đặt màu vai trò thành {color}." + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "Đã đặt biểu tượng vai trò thành {emoji}." + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "Đặt kênh quy tắc thành {0}." msgid "Set the system channel to {0}." msgstr "Đặt kênh hệ thống thành {0}." +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "Đã đặt kênh hệ thống thành {channel}." + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "Đã đặt chủ đề thành {text}." + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "Đặt giới hạn người dùng thành {0}." msgid "Set the vanity URL to {0}." msgstr "Đặt URL tùy chỉnh thành {0}." +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "Đã đặt URL tùy chỉnh thành {code}." + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "Đã đặt khu vực thoại thành {region}." + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "Đã đặt khu vực thoại thành tự động." + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "Hiển thị ảnh bìa hồ sơ chung của bạn trong cộng đồng msgid "Show your Visionary as a regular subscription instead" msgstr "Hiển thị Visionary của bạn dưới dạng gói đăng ký thông thường" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "Đã hiển thị các thành viên có vai trò này ở một mục riêng trong danh sách thành viên." + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "Đã xảy ra lỗi khi hoàn tiền cho bạn. Hãy liên hệ với bộ phận hỗ trợ nếu lỗi này vẫn tiếp diễn." #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "Đã xảy ra lỗi khi tải nhật ký hoạt động." @@ -31105,6 +32531,11 @@ msgstr "Bắt đầu cuộc gọi thoại" msgid "Start with computer" msgstr "Khởi động cùng máy tính" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "Đã bắt đầu hiển thị riêng các thành viên có vai trò này." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "nhãn dán" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "Không thể nén nhãn dán đủ nhỏ" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "Đã tạo nhãn dán" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "Đã xóa nhãn dán" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "Đã hết ô nhãn dán" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "Đã cập nhật nhãn dán" @@ -31412,6 +32843,46 @@ msgstr "Dừng xem luồng" msgid "Stop." msgstr "Dừng lại." +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "Đã dừng cho phép đặt tên kênh văn bản linh hoạt." + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "Đã ngừng cho phép người khác nhân bản biểu tượng cảm xúc của cộng đồng này." + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "Đã ngừng cho phép người khác nhân bản nhãn dán của cộng đồng này." + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "Đã ngừng hiển thị riêng các thành viên có vai trò này." + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "Đã dừng ẩn tin nhắn tham gia trong kênh hệ thống." + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "Đã ngừng ẩn vương miện chủ sở hữu cộng đồng." + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "Đã dừng yêu cầu bật 2FA để thực hiện hành động kiểm duyệt." + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "Đã ngăn thành viên nghe người khác trong cộng đồng này." + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "Đồng bộ với danh mục" msgid "Syntax highlighting" msgstr "Tô sáng cú pháp" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "Hệ thống" @@ -32449,6 +33922,16 @@ msgstr "Ứng dụng đã gặp sự cố. Đang kiểm tra bản cập nhật c msgid "The app should now be signed in to your account." msgstr "Ứng dụng giờ đã đăng nhập vào tài khoản của bạn." +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "Lệnh cấm đã hết hạn vào {date}." + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "Lệnh cấm dự kiến sẽ hết hạn vào {date}." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "Bot đã được thêm vào <0>{destinationName}." @@ -32491,6 +33974,11 @@ msgstr "Bản cập nhật cho máy tính đã được tải xuống. Khởi đ msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "Tệp đã tải xuống được lưu vào máy tính của bạn. Cài đặt bằng trình quản lý gói thông thường của bạn." +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "Biểu tượng cảm xúc này được tải lên bởi {user}." + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "Tệp chứa mã thông báo xác minh mà chúng tôi sẽ tìm nạp từ <0>{dnsUrl}." @@ -32504,6 +33992,51 @@ msgstr "Tệp bạn đang tải lên vượt quá giới hạn kích thước t msgid "The following people can't be added to this group DM:" msgstr "Không thể thêm những người sau vào tin nhắn nhóm này:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "Lời mời được tạo bởi {user} vào {date}." + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "Lời mời được tạo bởi {user}." + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "Lời mời được tạo vào {date}." + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "Lời mời chưa từng được sử dụng." + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "Lời mời dự kiến sẽ hết hạn vào {date}." + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "Liên kết mời được đặt để cho phép sử dụng không giới hạn." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "Lời mời được đặt hết hạn sau {duration}." + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "Liên kết mời được đặt để cấp tư cách thành viên tạm thời." + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "Lời mời được đặt thành không bao giờ hết hạn." + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "Ngôn ngữ mà hầu hết cộng đồng của bạn sử dụng. Dùng để lọc kết quả trong Khám phá." @@ -32518,6 +34051,11 @@ msgstr "Liên kết có thể vẫn hoạt động. Vui lòng thử lại sau í msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "Đã hủy kiểm tra nội dung người lớn. Bạn có thể đóng tab này và thử lại từ ứng dụng." +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "Thành viên không còn là thành viên tạm thời nữa." + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "Giá mới đã được lên lịch vào {effectiveDate}." msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "Kênh thoại mới sẽ sử dụng lại quyền, giới hạn người dùng và tốc độ bit từ <0>{channelLabel}." +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "Quyền ghi đè đã cho phép {permissions}." + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "Quyền ghi đè đã từ chối {permissions}." + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "Trang bạn tìm không tồn tại hoặc đã được di chuyển." @@ -32565,6 +34113,11 @@ msgstr "redirect_uri được cung cấp chưa đăng ký với ứng dụng nà msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "redirect_uri được cung cấp phải dùng HTTP hoặc HTTPS." +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "Vai trò đã cấp {permissions}." + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "Nhãn dán đã được tải lên dưới dạng ảnh động." msgid "The sticker was uploaded as static." msgstr "Nhãn dán đã được tải lên dưới dạng ảnh tĩnh." +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "Nhãn dán này được tải lên bởi {user}." + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "Hệ thống đã cấp cho {target} vai trò {role}." + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "Hệ thống đã gỡ bỏ vai trò {role} khỏi {target}." + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "Tên người dùng <0>{fluxerTag} đã có người sử dụng. Ti msgid "The verification code is invalid or expired." msgstr "Mã xác minh không hợp lệ hoặc đã hết hạn." +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "Webhook này được tạo bởi {user}." + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "Thẻ này không khớp với quốc gia thanh toán của bạn, vì vậy không thể dùng cho đơn vị tiền tệ được bản địa hóa này. Hãy dùng thẻ nội địa hoặc quay lại {productName} và chọn phương thức thanh toán khác." #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "Danh mục này đã chứa số kênh tối đa là {maxChannelsPerCategory}." @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "Theo dõi hành động của người kiểm duyệt trong cộng đồng." @@ -33953,6 +35526,11 @@ msgstr "Chuyển quyền sở hữu nhóm cho {userName}?" msgid "Transfer ownership" msgstr "Chuyển quyền sở hữu" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "Đã chuyển quyền sở hữu cộng đồng cho {user}." + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "Bật quyền riêng tư khi phát trực tuyến" msgid "Turn text smileys into emoji" msgstr "Chuyển mặt cười dạng văn bản thành biểu tượng cảm xúc" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "Đã tắt nội dung người lớn." + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "Đã tắt chế độ chậm." + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "Đã tắt cảnh báo nội dung." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "Đã tắt ảnh bìa tách riêng." + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "Đã tắt micrô của thành viên trong cộng đồng này." + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "Đã bật nội dung người lớn." + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "Đã bật cảnh báo nội dung." + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "Đã bật ảnh bìa tách riêng." + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "Đã bật lại micrô của thành viên trong cộng đồng này." + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "Việc tắt các phạm vi có thể khiến ứng dụng không hoạt động đúng cách." @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "Tiếng Ukraina" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "Không thể tải nhật ký hoạt động" @@ -34859,6 +36482,7 @@ msgstr "Mục tiêu không xác định" msgid "unknown user" msgstr "người dùng không xác định" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "người dùng không xác định" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "Chỉ dùng trong cộng đồng này." #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "Vermont" msgid "Version" msgstr "Phiên bản" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "Rất cao" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "Webcam" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Đã tạo webhook" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Đã xóa webhook" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Tên webhook" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Đã cập nhật webhook" diff --git a/fluxer_app/src/features/i18n/locales/zh-CN/messages.po b/fluxer_app/src/features/i18n/locales/zh-CN/messages.po index 144c66584..6e28e8059 100644 --- a/fluxer_app/src/features/i18n/locales/zh-CN/messages.po +++ b/fluxer_app/src/features/i18n/locales/zh-CN/messages.po @@ -56,6 +56,31 @@ msgstr "{a} 正在输入…" msgid "{a}, {b} and {c} are typing..." msgstr "{a}、{b} 和 {c} 正在输入…" +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} 为 {user} 在 {channel} 中添加了权限覆盖。" + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} 为 {channel} 中的 @everyone 添加了权限覆盖。" + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} 为频道 {channel} 中的身份组 {role} 添加了权限覆盖。" + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} 添加了一个贴纸。" + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} 添加了一个表情。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} 在 {channelNode} 中为 {targetEntity} 添加了频道权限。" @@ -64,35 +89,200 @@ msgstr "{actor} 在 {channelNode} 中为 {targetEntity} 添加了频道权限。 msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} 为 {targetEntity} 添加了频道权限。" +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} 将机器人 {target} 添加为临时成员。" + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} 添加了机器人 {target}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} 添加了机器人 {targetMember}。" +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} 添加了表情 {emoji}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} 添加了表情 {namedTarget}。" +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} 添加了贴纸 {name}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} 添加了贴纸 {namedTarget}。" +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} 将 {target} 封禁 {duration}。" + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} 封禁了 {target}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} 封禁了 {targetMember}。" +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} 将对 {target} 发送消息、添加反应和加入语音的限制改为在 {date} 结束。" + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} 将 {target} 的昵称从 {oldNick} 更改为 {newNick}。" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} 更改了类别 {channel} 的权限覆盖设置。" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} 更改了频道 {channel} 的权限覆盖设置。" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} 更改了链接频道 {channel} 的权限覆盖。" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} 更改了文字频道 {channel} 的权限覆盖设置。" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} 更改了语音频道 {channel} 的权限覆盖设置。" + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} 将自定义邀请链接从 {oldCode} 更改为 {newCode}。" + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} 更改了他们的社区个人资料头像。" + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} 更改了他们的社区个人资料横幅。" + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} 将其社区个人资料简介修改为 {text}。" + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} 将昵称从 {oldNick} 更改为 {newNick}。" + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} 创建了一个 Webhook。" + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} 创建了类别 {channel}。" + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} 在 {category} 中创建了频道 {channel}。" + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} 创建了频道 {channel}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} 创建了频道 {namedTarget}。" +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} 创建了 {channel} 的邀请链接 {code}。" + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} 创建了邀请链接 {code}。" + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} 创建了邀请 {namedTarget}{0}。" +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} 在 {category} 中创建了链接频道 {channel}。" + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} 创建了链接频道 {channel}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} 创建了身份组 {namedTarget}。" +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} 创建了身份组 {role}。" + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} 在 {category} 中创建了文字频道 {channel}。" + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} 创建了文字频道 {channel}。" + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} 在 {category} 中创建了语音频道 {channel}。" + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} 创建了语音频道 {channel}。" + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} 在 {channel} 中创建了 Webhook {name}。" + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} 创建了 Webhook {name}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} 创建了 Webhook {namedTarget}。" @@ -103,49 +293,209 @@ msgstr "{actor} 创建了 Webhook {namedTarget}。" msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} 删除了 {0} {bulkCount, plural, other {条消息}}{1}。" +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} 在 {channel} 中删除了 {count, plural, one {# 条消息} other {# 条消息}}。" + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} 删除了 {count, plural, one {# 条消息} other {# 条消息}}。" + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} 在 {channel} 中删除了消息。" + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} 删除了消息。" + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} 删除了消息{0}。" +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} 删除了一个贴纸。" + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} 删除了一个 Webhook。" + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} 删除了一个表情。" + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} 删除了多条消息{0}。" +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} 在 {channel} 中删除了几条消息。" + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} 删除了一些消息。" + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} 删除了类别 {channel}。" + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} 删除了频道 {channel}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} 删除了频道 {namedTarget}。" +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} 删除了表情 {emoji}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} 删除了表情 {namedTarget}。" +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} 删除了 {channel} 的邀请链接 {code}。" + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} 删除了邀请链接 {code}。" + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} 删除了邀请 {namedTarget}{0}。" +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} 删除了链接频道 {channel}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} 删除了身份组 {namedTarget}。" +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} 删除了身份组 {role}。" + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} 删除了贴纸 {name}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} 删除了贴纸 {namedTarget}。" +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} 删除了文字频道 {channel}。" + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} 删除了语音频道 {channel}。" + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} 从 {channel} 中删除了 Webhook {name}。" + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} 删除了 Webhook {name}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} 删除了 Webhook {namedTarget}。" +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} 将 {target} 从 {channel} 断开连接。" + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} 将 {target} 从语音频道移除了。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} 断开了 {targetMember} 的语音连接。" +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} 断开了与 {channel} 的连接。" + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} 断开了语音连接。" + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} 将身份组 {role} 授予了 {target}。" + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} 将 {target} 踢出了社区。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} 踢出了 {targetMember}。" +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} 再次允许 {target} 在此社区中收听他人。" + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} 进行了当前版本的应用无法显示的更改。" + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} 将 {target} 从 {oldChannel} 移至 {newChannel}。" + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} 将 {target} 移至了 {channel}。" + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} 将 {target} 移至了另一个语音频道。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} 将 {targetMember} 移到了 {channelNode}。" @@ -154,16 +504,68 @@ msgstr "{actor} 将 {targetMember} 移到了 {channelNode}。" msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} 将 {targetMember} 移动到其他语音频道。" +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} 从 {oldChannel} 移到了 {newChannel}。" + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} 将身份组 {role} 在成员列表中向下移动了。" + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} 将身份组 {role} 在身份组列表中向下移动了。" + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} 将身份组 {role} 在成员列表中向上移动了。" + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} 将身份组 {role} 在身份组列表中向上移动了。" + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} 移动到了 {channel}。" + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} 移至了其他语音频道。" + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} 暂停了邀请。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} 对 {targetEntity} 执行了审计操作。" +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} 在 {channel} 中置顶了一条消息。" + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} 置顶了一条消息。" + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} 置顶了一条消息{0}。" +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} 清理了不活跃成员。" @@ -179,19 +581,249 @@ msgstr "{actor} 移除了 {targetEntity} 在 {channelNode} 中的频道权限。 msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} 移除了 {targetEntity} 的频道权限。" +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} 将 {target} 的昵称“{nick}”移除了。" + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} 移除了 {user} 在 {channel} 的权限覆盖。" + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} 从 {channel} 移除了 @everyone 的权限覆盖。" + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} 从 {channel} 移除了身份组 {role} 的权限覆盖设置。" + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} 移除了 {target} 的身份组 {role}。" + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} 为 {target} 移除了禁言。" + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} 移除了自定义邀请链接 {code}。" + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} 移除了他们的社区个人资料主题色。" + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} 移除了他们的社区个人资料头像。" + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} 移除了他们的社区个人资料横幅。" + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} 移除了他们的社区个人资料简介。" + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} 移除了他们的社区个人资料代词。" + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} 移除了昵称 {nick}。" + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} 将类别 {oldName} 重命名为 {newName}。" + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} 将频道 {oldName} 重命名为 {newName}。" + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} 将社区从 {oldName} 重命名为 {newName}。" + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} 将表情 {oldEmoji} 重命名为 {newEmoji}。" + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} 将链接频道 {oldName} 重命名为 {newName}。" + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} 将身份组 {oldName} 重命名为 {newName}。" + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} 将贴纸 {oldName} 重命名为 {newName}。" + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} 将文字频道 {oldName} 重命名为 {newName}。" + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} 将语音频道 {oldName} 重命名为 {newName}。" + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} 将 Webhook {oldName} 重命名为 {newName}。" + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} 重置了身份组 {role} 的成员列表位置。" + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} 恢复了邀请。" + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} 为身份组 {role} 设置了成员列表位置。" + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} 将 {target} 的昵称改为了 {nick}。" + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} 将社区的自定义邀请链接设置为 {code}。" + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} 将其社区个人资料的主题色设置为 {color}。" + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} 设置了他们的社区个人资料头像。" + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} 设置了他们的社区个人资料横幅。" + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} 将其社区个人资料简介设置为 {text}。" + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} 将其社区个人资料中的代词设置为 {text}。" + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} 将昵称改为了 {nick}。" + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} 阻止了 {target} 在此社区中听到其他人的声音。" + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} 将 {target} 禁言至 {date}。" + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} 将社区所有权转让给了 {user}。" + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} 在此社区重新开启了 {target} 的麦克风。" + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} 在此社区关闭了 {target} 的麦克风。" + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} 解除了对 {target} 的封禁。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} 解封了 {targetMember}。" +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} 在 {channel} 中取消了消息的置顶。" + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} 取消了消息的置顶。" + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} 取消置顶了一条消息{0}。" +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} 更新了 {target}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} 更新了 {targetMember}。" +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} 更新了一个贴纸。" + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} 更新了一个 Webhook。" + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} 更新了一个表情。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} 更新了 {channelNode} 中 {targetEntity} 的频道权限。" @@ -204,35 +836,112 @@ msgstr "{actor} 更新了 {targetEntity} 的频道权限。" msgid "{actor} updated roles for {targetMember}." msgstr "{actor} 更新了 {targetMember} 的身份组。" +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} 更新了类别 {channel}。" + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} 更新了频道 {channel}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} 更新了频道 {namedTarget}。" +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} 更新了社区设置。" +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} 更新了表情 {emoji}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} 更新了表情 {namedTarget}。" +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} 更新了邀请链接 {code}。" + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} 更新了邀请 {namedTarget}{0}。" +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} 更新了链接频道 {channel}。" + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} 更新了 {channel} 中 {user} 的权限覆盖设置。" + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} 更新了 {channel} 中 @everyone 的权限覆盖设置。" + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} 更新了 {channel} 中身份组 {role} 的权限覆盖设置。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} 更新了身份组 {namedTarget}。" +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} 更新了身份组 {role}。" + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} 更新了 {target} 的身份组。" + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} 更新了贴纸 {name}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} 更新了贴纸 {namedTarget}。" +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} 更新了文字频道 {channel}。" + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} 更新了语音频道 {channel}。" + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} 更新了 Webhook {name}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} 更新了 Webhook {namedTarget}。" +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} 更新了他们的社区个人资料。" + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, other {# 项}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, other {# 位成员}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {另外 # 个权限} other {另外 # 个权限}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, other {# 个共同社区}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, other {显示 # 台设备}}" msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, other {退出 # 台设备}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {该邀请链接仅限使用 # 次。} other {该邀请链接仅限使用 # 次。}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {该邀请已使用 # 次。} other {该邀请已使用 # 次。}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "{guildName} 频道" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "活动状态" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "活动日志" @@ -2713,10 +3437,60 @@ msgstr "添加了 {0}。" msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "已添加 {length, plural, other {# 个本地文件引用}}。" +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "添加了聊天嵌入背景。" + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "添加了社区横幅。" + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "添加了社区图标。" + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "添加了内容警告,文本为 {text}。" + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "添加了内容警告。" + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "添加了头像。" + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "添加了邀请背景。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "已添加身份组。" +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "添加了成员的社区个人资料头像。" + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "添加了成员的社区个人资料横幅。" + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "添加了身份组 {role}。" + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "对齐方式控制仅在宽屏设备上可用" #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "永久拥有全部<0/>。不再计费,无需续订。" #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "所有操作" @@ -3001,10 +3775,12 @@ msgstr "所有语言" msgid "All members" msgstr "所有成员" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "全部时间" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "所有用户" @@ -3197,6 +3973,16 @@ msgstr "已允许 {0},并移除 {1} 的允许权限。" msgid "Allowed {0}." msgstr "已允许 {0}。" +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "允许 {permissions}。" + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "允许所有成员提及此身份组。" + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "允许的来电者" @@ -3205,15 +3991,35 @@ msgstr "允许的来电者" msgid "Allowed everyone to mention this role." msgstr "已允许所有人提及此身份组。" +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "允许使用灵活的文字频道名称。" + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "允许的邀请者" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "允许其他人克隆此社区的表情。" + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "允许其他人克隆此社区的贴纸。" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "允许的重定向" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "每位成员最多允许 {count, plural, one {# 个连接} other {# 个连接}}。" + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "封禁成员" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "将成员从社区封禁,并可选择删除其近期消息。" +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "封禁原因" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "屏蔽用户" msgid "Blocked" msgstr "已屏蔽" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "阻止了该成员发送消息、添加反应和加入语音,直到 {date}。" + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "机器人" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "机器人已添加" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "类别已删除" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "类别已满" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "居中" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "居中" @@ -6298,11 +7116,183 @@ msgstr "更改用户名" msgid "Changed nickname from {0} to {1}." msgstr "昵称从 {0} 改为 {1}。" +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "将慢速模式从 {oldDuration} 更改为 {newDuration}。" + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "将 AFK 频道从 {oldChannel} 更改为 {newChannel}。" + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "将 AFK 超时从 {oldDuration} 更改为 {newDuration}。" + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "将音频质量从 {oldKbps} kbps 更改为 {newKbps} kbps。" + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "更改了头像。" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "比特率已更改为 {0}。" +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "将发送消息、添加反应和加入语音的限制改为在 {date} 结束。" + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "更改了聊天嵌入背景。" + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "更改了社区横幅。" + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "更改了社区图标。" + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "将每位成员的连接数从 {oldCount} 更改为 {newCount}。" + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "将内容警告文本从 {oldText} 更改为 {newText}。" + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "更改了自定义身份组图标。" + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "将自定义警告文本从 {oldText} 更改为 {newText}。" + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "将默认通知设置从 {oldSetting} 更改为 {newSetting}。" + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "更改了描述,从 {oldText} 改为 {newText}。" + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "已将露骨内容过滤器从 {oldFilter} 更改为 {newFilter}。" + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "更改了邀请背景的对齐方式,从 {oldAlignment} 改为 {newAlignment}。" + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "更改了邀请背景。" + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "更改了链接,从 {oldUrl} 改为 {newUrl}。" + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "更改了成员的社区个人资料头像。" + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "更改了成员的社区个人资料横幅。" + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "将成员的社区个人资料简介修改为 {text}。" + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "将消息历史记录阈值从 {oldDate} 更改为 {newDate}。" + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "将名称从 {oldName} 更改为 {newName}。" + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "将昵称从 {oldNick} 更改为 {newNick}。" + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "将身份组颜色从 {oldColor} 更改为 {newColor}。" + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "将身份组图标从 {oldEmoji} 更改为 {newEmoji}。" + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "已将系统频道从 {oldChannel} 更改为 {newChannel}。" + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "将话题从 {oldText} 更改为 {newText}。" + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "将用户上限从 {oldCount} 更改为 {newCount}。" + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "已将自定义邀请链接从 {oldCode} 更改为 {newCode}。" + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "已将验证级别从 {oldLevel} 更改为 {newLevel}。" + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "将语音区域从 {oldRegion} 更改为 {newRegion}。" + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "频道" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "频道或类别" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "频道权限覆盖已添加" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "频道权限覆盖已移除" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "频道权限覆盖已更新" @@ -7815,7 +8805,7 @@ msgstr "成员超过 250 人的社区会被强制设为“仅提及我的消息 #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "删除你在此对话中的消息?" msgid "Deleted" msgstr "已删除" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "删除了该成员最近 {duration} 的消息记录。" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "删除线文字" msgid "Deleted your messages." msgstr "已删除你的消息。" +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "已删除的类别" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "已删除的频道" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "已删除的身份组" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "已拒绝 {0},并移除 {1} 的拒绝设置。" msgid "Denied {0}." msgstr "已拒绝 {0}。" +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "拒绝 {permissions}。" + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "已显示嵌入内容" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "表情克隆已启用" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "表情已创建" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "表情已删除" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "表情槽位已满" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "表情已更新" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "按账号创建日期筛选" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "按操作筛选" @@ -14572,18 +15587,22 @@ msgstr "按身份组筛选" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "按用户筛选" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "过滤所有人" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "过滤无身份组成员" @@ -15890,6 +16909,11 @@ msgstr "授予了 {0},撤销了 {1}。" msgid "Granted {0}." msgstr "授予了 {0}。" +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "授予了 {permissions}。" + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "嗨,{username}!希望你在这里玩得开心。" msgid "Hey, {username}, welcome aboard!" msgstr "嘿,{username},欢迎加入!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "已在系统频道中隐藏加入消息。" + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "隐藏了社区所有者皇冠。" + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "隐藏自己的摄像头?" msgid "Hide your own screen share?" msgstr "隐藏自己的屏幕共享?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "高" @@ -17688,7 +18724,7 @@ msgstr "邀请" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "邀请码是 {0}。" #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "邀请已创建" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "邀请已删除" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "邀请不可用" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "邀请已更新" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "左 {keyName}" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "左对齐" @@ -18745,6 +19783,11 @@ msgstr "让屏幕阅读器朗读当前打开频道中新收到的消息。通知 msgid "Let the community self-moderate" msgstr "让社区成员自行管理" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "再次允许该成员在此社区中收听他人。" + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "重启桌面应用后,让自定义 CSS 显示透明窗口区域。" @@ -18815,6 +19858,16 @@ msgstr "已点赞。" msgid "Likes: <0>{countLabel}" msgstr "点赞:<0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "将此身份组的提及限制为有权提及任何身份组的成员。" + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "将频道限制为 {count, plural, one {# 位用户} other {# 位用户}}。" + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "路易斯安那州" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "低" @@ -19204,6 +20259,11 @@ msgstr "macOS 默认" msgid "macOS permissions" msgstr "macOS 权限" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "将频道的成人内容设置改为继承。" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "将表情标记为动态。" msgid "Marked emoji as static." msgstr "将表情标记为静态。" +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "将频道标记为包含成人内容。" + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "将频道标记为不包含成人内容。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "将该成员标记为永久成员。" @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "停止播放" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "中" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "中等大小(默认)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "成员" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "{displayName} 的成员操作" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "成员已封禁" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "成员已断开连接" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "成员已踢出" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "此社区的成员列表暂时不可用" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "成员已移动" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "未找到成员" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "成员身份组已更新" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "加入时间" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "成员已解除封禁" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "成员已更新" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "成员离线时会被移除,除非为其分配了身份组。" #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "成员已清除" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "没有 {readMessageHistoryPermissionLabel} 权限的成员可以查看此日期之后发送的消息。" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "成员(已选)" @@ -20077,8 +21149,10 @@ msgstr "提及你的消息会在这里显示 {recentMentionsRetentionDays} 天 msgid "Mentions of you show up here for {retentionDays} days." msgstr "提及你的消息会在这里显示 {retentionDays} 天。" +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "仅提及我的消息" @@ -20104,7 +21178,7 @@ msgstr "消息" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "消息" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "消息调试" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "消息已删除" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "{channelName} 的消息列表" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "消息已置顶" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "消息时间" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "消息已取消置顶" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "消息与媒体" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "消息已删除" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "审核" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "管理操作和社区变更将在此处显示。" @@ -20915,16 +21989,51 @@ msgstr "移至" msgid "Move to…" msgstr "移至…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "已从 {oldChannel} 移至 {newChannel}。" + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "将频道从类别 {oldCategory} 移至类别 {newCategory}。" + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "将频道移至类别 {category}。" + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "将频道移至类别 {0}。" +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "将身份组在成员列表中向下移动。" + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "将身份组在身份组列表中向下移动。" + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "将身份组移至第 {0} 位。" +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "将身份组在成员列表中向上移动。" + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "将身份组在身份组列表中向上移动。" + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "新消息" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "新消息" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "未引用本地文件" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "暂无日志" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "未提供原因" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "未提供原因。" @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "无转换" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "无转换" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "OAuth2 URL 构建器" msgid "Objects" msgstr "物品" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "物品" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "关" @@ -23523,6 +24636,21 @@ msgstr "原消息加载失败" msgid "Original message was deleted" msgstr "原消息已删除" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "由 {user} 于 {date} 封禁。" + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "由 {user} 封禁。" + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "于 {date} 封禁。" + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "因“减少动态效果”而暂停。开启后可继续播放动态表 msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "因“减少动态效果”而暂停。开启后可继续播放 GIF。" +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "已暂停邀请。" + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "永久删除你的账号和所有相关数据。此操作无法撤销。 msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "永久删除你在私信、群聊和社区中发送的消息。此操作会在后台运行,完成后你会收到一条私信通知。" +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "已添加权限覆盖" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "已移除权限覆盖" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "权限覆盖已更新" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "准备好升级了吗?" msgid "Real-time" msgstr "实时" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "原因" @@ -26291,26 +27440,166 @@ msgstr "移除了身份组“{oldLabel}”。" msgid "Removed roles." msgstr "移除了身份组。" +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "移除了 AFK 频道。" + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "移除了头像。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "已将频道从其类别中移除。" +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "已将频道移出类别 {category}。" + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "移除了聊天嵌入背景。" + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "移除了社区横幅。" + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "移除了社区图标。" + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "移除了内容警告文字。" + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "移除了内容警告。" + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "移除了自定义身份组图标。" + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "移除了自定义警告文本。" + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "移除了描述 {text}。" + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "移除了邀请背景。" + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "移除了链接。" + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "移除了成员的社区个人资料主题色。" + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "移除了成员的社区个人资料头像。" + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "移除了成员的社区个人资料横幅。" + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "移除了成员的社区个人资料简介。" + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "移除了成员的社区个人资料中的代词。" + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "移除了消息历史记录阈值。" + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "移除了昵称 {nick}。" + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "移除了 {permissions} 的覆盖设置。" + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "移除了身份组 {role}。" + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "移除了身份组颜色。" + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "移除了身份组图标。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "移除了规则频道。" +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "移除了系统频道。" +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "移除了禁言。" + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "移除了话题 {text}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "移除了 Unicode 表情。" +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "已移除用户上限。" +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "移除了自定义邀请链接 {code}。" + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "已解除 {targetUserTag} 的禁言" @@ -26381,6 +27670,11 @@ msgstr "将贴纸重命名为“{0}”。" msgid "Renamed the channel to {0}." msgstr "将频道重命名为“{0}”。" +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "将社区从 {oldName} 重命名为 {newName}。" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "要求管理员启用双重认证后,才能封禁、踢出、禁言或 msgid "Required" msgstr "必需" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "开启了对管理操作的 2FA 要求。" + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "重置间距" msgid "Reset the connection limit." msgstr "已重置连接限制。" +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "重置了身份组在成员列表中的位置。" + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "已限制为只有具备权限的成员才能提及此身份组。" msgid "Resubscribe" msgstr "重新订阅" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "恢复了邀请。" + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "返回登录" @@ -27330,6 +28639,11 @@ msgstr "撤销此邀请?此操作无法撤销。" msgid "Revoked {0}." msgstr "已撤销 {0}。" +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "撤销了 {permissions}。" + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "右 {keyName}" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "右对齐" @@ -27408,7 +28724,7 @@ msgstr "来电铃声" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "身份组" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "身份组颜色" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "身份组已创建" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "身份组创建成功" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "身份组已删除" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "身份组名称为必填项" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "身份组已更新" @@ -28930,11 +30246,21 @@ msgstr "会话" msgid "Set {fieldNode} to {0}." msgstr "将 {fieldNode} 设置为 {0}。" +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "设置了自定义身份组图标。" + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "设置自定义状态" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "为该身份组设置了成员列表中的位置。" + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "已将身份组颜色设为 <0>{hex} <1/>。" msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "将慢速模式设置为 {0} {seconds, plural, other {秒}}。" +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "将慢速模式设置为 {duration}。" + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "设置状态" msgid "Set the AFK channel to {0}." msgstr "将 AFK 频道设为 {0}。" +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "将 AFK 频道设置为 {channel}。" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "已将 AFK 超时设为 {0} 秒。" +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "将音频质量设置为 {kbps} kbps。" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "将频道类型设为 {0}。" msgid "Set the connection limit to {0}." msgstr "将连接限制设置为 {0}。" +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "将内容警告文字设置为 {text}。" + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "将自定义警告文本设置为 {text}。" + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "将描述设置为 {text}。" + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "将邀请背景图对齐方式设为 {0}。" +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "将链接设置为 {url}。" + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "将成员的社区个人资料主题色设置为 {color}。" + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "将成员的社区个人资料简介设置为 {text}。" + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "将成员的社区个人资料中的代词设置为 {text}。" + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "将消息历史记录阈值设置为 {date}。" + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "将昵称设置为 {nick}。" + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "设置客户端显示的公开产品名称、主题颜色和图片资源。" +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "将身份组颜色设置为 {color}。" + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "将身份组图标设置为 {emoji}。" + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "将规则频道设为 {0}。" msgid "Set the system channel to {0}." msgstr "将系统频道设为 {0}。" +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "将系统频道设置为 {channel}。" + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "将话题设置为 {text}。" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "将用户上限设为 {0}。" msgid "Set the vanity URL to {0}." msgstr "将自定义邀请链接设为 {0}。" +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "将自定义邀请链接设置为 {code}。" + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "将语音区域设置为 {region}。" + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "将语音区域设置为自动。" + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "在此社区中显示你的全局个人资料横幅" msgid "Show your Visionary as a regular subscription instead" msgstr "改为将你的 Visionary 显示为普通订阅" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "在成员列表中单独显示了拥有此身份组的成员。" + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "退款时出错了。如果问题持续出现,请联系支持团队。" #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "加载活动日志时出错了。" @@ -31105,6 +32531,11 @@ msgstr "发起语音通话" msgid "Start with computer" msgstr "开机启动" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "开始单独显示拥有此身份组的成员。" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "贴纸" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "贴纸压缩后仍然过大" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "贴纸已创建" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "贴纸已删除" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "贴纸槽位已满" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "贴纸已更新" @@ -31412,6 +32843,46 @@ msgstr "停止观看直播" msgid "Stop." msgstr "停止。" +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "已停用灵活的文字频道名称。" + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "禁止了其他人克隆此社区的表情。" + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "禁止了其他人克隆此社区的贴纸。" + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "不再单独显示拥有此身份组的成员。" + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "已停止在系统频道中隐藏加入消息。" + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "已停止隐藏社区所有者皇冠。" + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "已停止要求通过 2FA 进行管理操作。" + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "已阻止该成员在此社区中收听他人。" + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "与类别同步" msgid "Syntax highlighting" msgstr "语法高亮" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "系统" @@ -32449,6 +33922,16 @@ msgstr "应用崩溃了。正在检查更新,这或许能解决问题…" msgid "The app should now be signed in to your account." msgstr "应用现在应该已登录你的账号。" +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "该封禁已于 {date} 到期。" + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "该封禁原定于 {date} 到期。" + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "机器人已添加到 <0>{destinationName}。" @@ -32491,6 +33974,11 @@ msgstr "桌面更新已下载。重启 {productName} 以完成安装。" msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "下载的文件已保存到你的电脑。请使用你的常规软件包管理器进行安装。" +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "表情由 {user} 上传。" + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "此文件包含我们将从 <0>{dnsUrl} 获取的验证令牌。" @@ -32504,6 +33992,51 @@ msgstr "你要上传的文件大小超过了 {maxSizeFormatted} 的上限。" msgid "The following people can't be added to this group DM:" msgstr "以下用户无法添加到群聊:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "该邀请由 {user} 于 {date} 创建。" + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "该邀请由 {user} 创建。" + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "邀请创建于 {date}。" + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "该邀请从未被使用。" + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "该邀请原定于 {date} 到期。" + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "该邀请设置为允许无限次使用。" + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "该邀请设置为在 {duration} 后过期。" + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "此邀请设置为授予临时成员资格。" + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "该邀请设置了永不过期。" + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "社区中大多数成员使用的语言。用于筛选社区发现结果。" @@ -32518,6 +34051,11 @@ msgstr "链接可能仍然有效。请稍后重试。" msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "成人内容检查已取消。你可以关闭此标签页,然后在应用中重试。" +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "该成员不再是临时成员。" + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "新价格已安排在 {effectiveDate} 生效。" msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "新的语音频道将沿用 <0>{channelLabel} 的权限、用户上限和比特率。" +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "该覆盖设置允许 {permissions}。" + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "该覆盖设置拒绝了 {permissions}。" + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "你要找的页面不存在或已被移动。" @@ -32565,6 +34113,11 @@ msgstr "提供的 redirect_uri 未在此应用中注册。" msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "提供的 redirect_uri 必须使用 HTTP 或 HTTPS。" +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "该身份组授予了 {permissions}。" + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "该贴纸以动态形式上传。" msgid "The sticker was uploaded as static." msgstr "该贴纸以静态形式上传。" +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "贴纸由 {user} 上传。" + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "系统已将身份组 {role} 授予 {target}。" + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "系统已移除 {target} 的身份组 {role}。" + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "用户名 <0>{fluxerTag} 已被占用。继续操作将自动重新 msgid "The verification code is invalid or expired." msgstr "验证码无效或已过期。" +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "该 Webhook 由 {user} 创建。" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "此卡与你的账单国家/地区不符,因此无法用于此本地化货币。请使用本地银行卡,或返回 {productName} 并选择其他付款方式。" #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "此类别已达到 {maxChannelsPerCategory} 个频道的上限。" @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "追踪社区内的管理员操作。" @@ -33953,6 +35526,11 @@ msgstr "要将群聊所有权转让给 {userName} 吗?" msgid "Transfer ownership" msgstr "转让所有权" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "将社区所有权转让给了 {user}。" + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "开启直播隐私模式" msgid "Turn text smileys into emoji" msgstr "将颜文字转换为表情" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "关闭了成人内容。" + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "已关闭慢速模式。" + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "已关闭内容警告。" + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "已关闭独立横幅。" + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "已在此社区中关闭了成员的麦克风。" + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "开启了成人内容。" + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "开启了内容警告。" + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "开启了独立横幅。" + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "已在此社区中为成员重新开启麦克风。" + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "关闭权限范围可能导致应用无法正常运行。" @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "乌克兰语" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "无法加载活动日志" @@ -34859,6 +36482,7 @@ msgstr "未知目标" msgid "unknown user" msgstr "未知用户" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "未知用户" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "仅用于此社区。" #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "佛蒙特州" msgid "Version" msgstr "版本" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "非常高" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "摄像头" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Webhook 已创建" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhook 已删除" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Webhook 名称" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhook 已更新" diff --git a/fluxer_app/src/features/i18n/locales/zh-TW/messages.po b/fluxer_app/src/features/i18n/locales/zh-TW/messages.po index 423a9ad68..c22e0c997 100644 --- a/fluxer_app/src/features/i18n/locales/zh-TW/messages.po +++ b/fluxer_app/src/features/i18n/locales/zh-TW/messages.po @@ -56,6 +56,31 @@ msgstr "{a} 正在輸入…" msgid "{a}, {b} and {c} are typing..." msgstr "{a}、{b} 和 {c} 正在輸入…" +#. Activity log summary when a channel got a permission override for one member. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:322 +msgid "{actor} added a permission override for {user} in {channel}." +msgstr "{actor} 為 {user} 在 {channel} 新增了權限覆寫。" + +#. Activity log summary when a channel got a permission override for every member of the community. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:327 +msgid "{actor} added a permission override for @everyone in {channel}." +msgstr "{actor} 在 {channel} 中為 @everyone 新增了權限覆寫。" + +#. Activity log summary when a channel got a permission override for a role. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:317 +msgid "{actor} added a permission override for the role {role} in {channel}." +msgstr "{actor} 為身分組 {role} 在 {channel} 中新增了權限覆寫。" + +#. Activity log summary for a sticker that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:50 +msgid "{actor} added a sticker." +msgstr "{actor} 新增了貼圖。" + +#. Activity log summary for a custom emoji that was added to the community when its name was not recorded. {actor} is the member who added it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:10 +msgid "{actor} added an emoji." +msgstr "{actor} 新增了一個表情符號。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:572 msgid "{actor} added channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} 在 {channelNode} 中為 {targetEntity} 新增了頻道權限。" @@ -64,35 +89,200 @@ msgstr "{actor} 在 {channelNode} 中為 {targetEntity} 新增了頻道權限。 msgid "{actor} added channel permissions for {targetEntity}." msgstr "{actor} 為 {targetEntity} 新增了頻道權限。" +#. Activity log summary for a bot that was added to the community with temporary membership. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:412 +msgid "{actor} added the bot {target} as a temporary member." +msgstr "{actor} 將機器人 {target} 加入為臨時成員。" + +#. Activity log summary for a bot that was added to the community. {actor} is the member who added the bot, shown as a clickable user chip, or the word System. {target} is the bot, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:407 +msgid "{actor} added the bot {target}." +msgstr "{actor} 已加入機器人 {target}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:672 msgid "{actor} added the bot {targetMember}." msgstr "{actor} 新增了機器人 {targetMember}。" +#. Activity log summary for a custom emoji that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:5 +msgid "{actor} added the emoji {emoji}." +msgstr "{actor} 新增了表情符號 {emoji}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:735 msgid "{actor} added the emoji {namedTarget}." msgstr "{actor} 新增了表情符號「{namedTarget}」。" +#. Activity log summary for a sticker that was uploaded or copied to the community. {actor} is the member who added it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:45 +msgid "{actor} added the sticker {name}." +msgstr "{actor} 新增了貼圖 {name}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:753 msgid "{actor} added the sticker {namedTarget}." msgstr "{actor} 新增了貼圖「{namedTarget}」。" +#. Activity log summary for a user who was banned from the community for a limited time. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. {duration} is how long the ban lasts, shown as a formatted duration phrase such as "3 days" or "12 hours". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:20 +msgid "{actor} banned {target} for {duration}." +msgstr "{actor} 將 {target} 暫時停權 {duration}。" + +#. Activity log summary for a user who was banned from the community with no end date. A ban removes the user from the community and stops them from joining again. It is not the feature that blocks a user. {actor} is the member who made the ban, shown as a clickable user chip, or the word System. {target} is the banned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:15 +msgid "{actor} banned {target}." +msgstr "{actor} 將 {target} 停權。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:613 msgid "{actor} banned {targetMember}." msgstr "{actor} 將 {targetMember} 停權。" +#. Activity log summary for a block on a member that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who moved the end of the block, shown as a clickable user chip, or the word System. {target} is the blocked member, shown as a clickable user chip. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:95 +msgid "{actor} changed {target}'s block on sending messages, reacting and joining voice to end at {date}." +msgstr "{actor} 將禁止 {target} 傳送訊息、新增反應和加入語音的結束時間改為 {date}。" + +#. Activity log summary for a nickname that someone changed for another member in the community. {actor} is the member who changed the nickname, shown as a clickable user chip, or the word System. {target} is the member whose nickname changed, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:65 +msgid "{actor} changed the nickname of {target} from {oldNick} to {newNick}." +msgstr "{actor} 將 {target} 的暱稱從 {oldNick} 改為 {newNick}。" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel category were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:148 +msgid "{actor} changed the permission overrides of the category {channel}." +msgstr "{actor} 更改了類別 {channel} 的權限覆寫。" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a channel of a type this app version cannot name were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:153 +msgid "{actor} changed the permission overrides of the channel {channel}." +msgstr "{actor} 更改了頻道 {channel} 的權限覆寫。" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a link channel were changed, without saying which. A link channel is a channel list entry that opens a web address. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:143 +msgid "{actor} changed the permission overrides of the link channel {channel}." +msgstr "{actor} 更改了連結頻道 {channel} 的權限覆寫。" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a text channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:133 +msgid "{actor} changed the permission overrides of the text channel {channel}." +msgstr "{actor} 更改了文字頻道 {channel} 的權限覆寫。" + +#. Activity log summary for an older entry that only recorded that the permission overrides of a voice channel were changed, without saying which. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:138 +msgid "{actor} changed the permission overrides of the voice channel {channel}." +msgstr "{actor} 變更了語音頻道 {channel} 的權限覆寫。" + +#. Activity log summary when a member replaced the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:25 +msgid "{actor} changed the vanity URL from {oldCode} to {newCode}." +msgstr "{actor} 將自訂網址從 {oldCode} 變更為 {newCode}。" + +#. Activity log summary for a member who replaced the avatar on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:155 +msgid "{actor} changed their community profile avatar." +msgstr "{actor} 變更了他們的社群個人檔案頭像。" + +#. Activity log summary for a member who replaced the banner image on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:170 +msgid "{actor} changed their community profile banner." +msgstr "{actor} 變更了他們的社群個人檔案橫幅。" + +#. Activity log summary for a member who changed the bio on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:185 +msgid "{actor} changed their community profile bio to {text}." +msgstr "{actor} 將他們的社群個人檔案簡介修改為 {text}。" + +#. Activity log summary for a member who changed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:80 +msgid "{actor} changed their nickname from {oldNick} to {newNick}." +msgstr "{actor} 將暱稱從 {oldNick} 變更為 {newNick}。" + +#. Activity log summary for a new webhook when its name was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:95 +msgid "{actor} created a webhook." +msgstr "{actor} 建立了 Webhook。" + +#. Activity log summary when a channel category was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:45 +msgid "{actor} created the category {channel}." +msgstr "{actor} 建立了類別 {channel}。" + +#. Activity log summary when a channel of a type this app version cannot name was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:40 +msgid "{actor} created the channel {channel} in {category}." +msgstr "{actor} 在 {category} 中建立了頻道 {channel}。" + +#. Activity log summary when a channel of a type this app version cannot name was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:35 +msgid "{actor} created the channel {channel}." +msgstr "{actor} 建立了頻道 {channel}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:553 msgid "{actor} created the channel {namedTarget}." msgstr "{actor} 建立了頻道「{namedTarget}」。" +#. Activity log summary for a new invite link. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite leads to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:5 +msgid "{actor} created the invite {code} for {channel}." +msgstr "{actor} 建立了 {code} 這個邀請連結,用於 {channel}。" + +#. Activity log summary for a new invite link when its channel was not recorded. {actor} is the member who created the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:10 +msgid "{actor} created the invite {code}." +msgstr "{actor} 建立了邀請連結 {code}。" + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:696 msgid "{actor} created the invite {namedTarget}{0}." msgstr "{actor} 建立了邀請「{namedTarget}」{0}。" +#. Activity log summary when a link channel was created inside a category. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:30 +msgid "{actor} created the link channel {channel} in {category}." +msgstr "{actor} 在 {category} 中建立了連結頻道 {channel}。" + +#. Activity log summary when a link channel was created. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:25 +msgid "{actor} created the link channel {channel}." +msgstr "{actor} 建立了連結頻道 {channel}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:678 msgid "{actor} created the role {namedTarget}." msgstr "{actor} 建立了身分組「{namedTarget}」。" +#. Activity log summary for a role that was created in the community. {actor} is the member who created it, shown as a clickable user chip, or the word System. {role} is the new role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:5 +msgid "{actor} created the role {role}." +msgstr "{actor} 建立了身分組 {role}。" + +#. Activity log summary when a text channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:10 +msgid "{actor} created the text channel {channel} in {category}." +msgstr "{actor} 在 {category} 中建立了文字頻道 {channel}。" + +#. Activity log summary when a text channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:5 +msgid "{actor} created the text channel {channel}." +msgstr "{actor} 建立了文字頻道 {channel}。" + +#. Activity log summary when a voice channel was created inside a category. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. {category} is the category that holds it, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:20 +msgid "{actor} created the voice channel {channel} in {category}." +msgstr "{actor} 建立了語音頻道 {channel},位於 {category} 中。" + +#. Activity log summary when a voice channel was created. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the new channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:15 +msgid "{actor} created the voice channel {channel}." +msgstr "{actor} 建立了語音頻道 {channel}。" + +#. Activity log summary for a new webhook. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posts in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:85 +msgid "{actor} created the webhook {name} in {channel}." +msgstr "{actor} 在 {channel} 中建立了 Webhook {name}。" + +#. Activity log summary for a new webhook when its channel was not recorded. {actor} is the member who created the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:90 +msgid "{actor} created the webhook {name}." +msgstr "{actor} 建立了 Webhook {name}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:717 msgid "{actor} created the webhook {namedTarget}." msgstr "{actor} 建立了 Webhook「{namedTarget}」。" @@ -103,49 +293,209 @@ msgstr "{actor} 建立了 Webhook「{namedTarget}」。" msgid "{actor} deleted {0} {bulkCount, plural, one {message} other {messages}}{1}." msgstr "{actor} 刪除了 {0} {bulkCount, plural, one {則訊息} other {則訊息}}{1}。" +#. Activity log summary for several messages that were deleted together. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:115 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}} in {channel}." +msgstr "{actor} 刪除了 {channel} 中的 {count, plural, one {# 則訊息} other {# 則訊息}}。" + +#. Activity log summary for several messages that were deleted together when the channel was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {count} is an ICU plural with the number of deleted messages, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:120 +msgid "{actor} deleted {count, plural, one {# message} other {# messages}}." +msgstr "{actor} 刪除了 {count, plural, one {# 則訊息} other {# 則訊息}}。" + +#. Activity log summary for one message that was deleted. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {channel} is the channel the message was in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:105 +msgid "{actor} deleted a message in {channel}." +msgstr "{actor} 在 {channel} 中刪除了一則訊息。" + +#. Activity log summary for one message that was deleted when the channel was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:110 +msgid "{actor} deleted a message." +msgstr "{actor} 刪除了一則訊息。" + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:771 msgid "{actor} deleted a message{0}." msgstr "{actor} 刪除了一則訊息{0}。" +#. Activity log summary for a sticker that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:95 +msgid "{actor} deleted a sticker." +msgstr "{actor} 刪除了一個貼圖。" + +#. Activity log summary for a deleted webhook when its name was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:150 +msgid "{actor} deleted a webhook." +msgstr "{actor} 刪除了一個 Webhook。" + +#. Activity log summary for a custom emoji that was deleted when its name was not recorded. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:35 +msgid "{actor} deleted an emoji." +msgstr "{actor} 刪除了一個表情符號。" + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:789 msgid "{actor} deleted multiple messages{0}." msgstr "{actor} 刪除了多則訊息{0}。" +#. Activity log summary for several messages that were deleted together when their number was not recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. {channel} is the channel the messages were in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:125 +msgid "{actor} deleted some messages in {channel}." +msgstr "{actor} 在 {channel} 中刪除了部分訊息。" + +#. Activity log summary for several messages that were deleted together when neither their number nor the channel was recorded. {actor} is the member who deleted them, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:130 +msgid "{actor} deleted some messages." +msgstr "{actor} 刪除了一些訊息。" + +#. Activity log summary when a channel category was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted category, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:306 +msgid "{actor} deleted the category {channel}." +msgstr "{actor} 刪除了類別 {channel}。" + +#. Activity log summary when a channel of a type this app version cannot name was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:311 +msgid "{actor} deleted the channel {channel}." +msgstr "{actor} 刪除了頻道 {channel}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:565 msgid "{actor} deleted the channel {namedTarget}." msgstr "{actor} 刪除了頻道「{namedTarget}」。" +#. Activity log summary for a custom emoji that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {emoji} is the name of the deleted emoji between colons, for example :blobcat:, shown without an image. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:30 +msgid "{actor} deleted the emoji {emoji}." +msgstr "{actor} 刪除了表情符號 {emoji}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:747 msgid "{actor} deleted the emoji {namedTarget}." msgstr "{actor} 刪除了表情符號「{namedTarget}」。" +#. Activity log summary for a deleted invite link. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. {channel} is the channel the invite led to, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:45 +msgid "{actor} deleted the invite {code} for {channel}." +msgstr "{actor} 刪除了 {channel} 的邀請連結 {code}。" + +#. Activity log summary for a deleted invite link when its channel was not recorded. {actor} is the member who deleted the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:50 +msgid "{actor} deleted the invite {code}." +msgstr "{actor} 刪除了邀請連結 {code}。" + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:710 msgid "{actor} deleted the invite {namedTarget}{0}." msgstr "{actor} 刪除了邀請「{namedTarget}」{0}。" +#. Activity log summary when a link channel was deleted. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:301 +msgid "{actor} deleted the link channel {channel}." +msgstr "{actor} 刪除了連結頻道 {channel}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:690 msgid "{actor} deleted the role {namedTarget}." msgstr "{actor} 刪除了身分組「{namedTarget}」。" +#. Activity log summary for a role that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {role} is the deleted role, shown in bold with the name it had when it was deleted, or deleted-role when that name was not recorded. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:50 +msgid "{actor} deleted the role {role}." +msgstr "{actor} 刪除了身分組 {role}。" + +#. Activity log summary for a sticker that was deleted from the community. {actor} is the member who deleted it, shown as a clickable user chip, or the word System. {name} is the name of the deleted sticker, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:90 +msgid "{actor} deleted the sticker {name}." +msgstr "{actor} 刪除了貼圖 {name}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:765 msgid "{actor} deleted the sticker {namedTarget}." msgstr "{actor} 刪除了貼圖「{namedTarget}」。" +#. Activity log summary when a text channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:291 +msgid "{actor} deleted the text channel {channel}." +msgstr "{actor} 刪除了文字頻道 {channel}。" + +#. Activity log summary when a voice channel was deleted. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the deleted channel, shown as a channel chip with the name it had. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:296 +msgid "{actor} deleted the voice channel {channel}." +msgstr "{actor} 刪除了語音頻道 {channel}。" + +#. Activity log summary for a deleted webhook. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. {channel} is the channel the webhook posted in, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:140 +msgid "{actor} deleted the webhook {name} from {channel}." +msgstr "{actor} 刪除了 {channel} 中的 Webhook {name}。" + +#. Activity log summary for a deleted webhook when its channel was not recorded. {actor} is the member who deleted the webhook, shown as a clickable user chip, or the word System. {name} is the name the webhook had, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:145 +msgid "{actor} deleted the webhook {name}." +msgstr "{actor} 刪除了 Webhook {name}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:729 msgid "{actor} deleted the webhook {namedTarget}." msgstr "{actor} 刪除了 Webhook「{namedTarget}」。" +#. Activity log summary for a member who was removed from a voice channel by someone else. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. {channel} is the voice channel they were in, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:387 +msgid "{actor} disconnected {target} from {channel}." +msgstr "{actor} 將 {target} 從 {channel} 中斷連線。" + +#. Activity log summary for a member who was removed from a voice channel by someone else when the channel was not recorded. {actor} is the member who disconnected them, shown as a clickable user chip, or the word System. {target} is the member who was disconnected, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:392 +msgid "{actor} disconnected {target} from voice." +msgstr "{actor} 將 {target} 從語音中斷連線。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:666 msgid "{actor} disconnected {targetMember} from voice." msgstr "{actor} 中斷了 {targetMember} 的語音連線。" +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they left, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:397 +msgid "{actor} disconnected from {channel}." +msgstr "{actor} 已從 {channel} 中斷連線。" + +#. Activity log summary for a member who removed themselves from a voice channel using moderator tools, when the channel was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:402 +msgid "{actor} disconnected from voice." +msgstr "{actor} 已從語音中斷連線。" + +#. Activity log summary for a role that was given to a member. {actor} is the member who gave the role, shown as a clickable user chip, or the word System. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:125 +msgid "{actor} gave {target} the role {role}." +msgstr "{actor} 將身分組 {role} 授予了 {target}。" + +#. Activity log summary for a member who was kicked from the community. {actor} is the member who kicked them, shown as a clickable user chip, or the word System. {target} is the member who was kicked, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:5 +msgid "{actor} kicked {target}." +msgstr "{actor} 將 {target} 踢出。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:607 msgid "{actor} kicked {targetMember}." msgstr "{actor} 踢出了 {targetMember}。" +#. Activity log summary for a moderator who let a member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who lifted it, shown as a clickable user chip, or the word System. {target} is the member who can hear others again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:120 +msgid "{actor} let {target} hear others in this community again." +msgstr "{actor} 讓 {target} 再次能在這個社群中聽到其他人說話。" + +#. Activity log summary for a kind of change this app version cannot describe, usually because the server is newer than the app. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:35 +msgid "{actor} made a change that this version of the app cannot show." +msgstr "{actor} 進行了一項變更,此版本的應用程式無法顯示。" + +#. Activity log summary for a member who was moved from one voice channel to another. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they were moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:357 +msgid "{actor} moved {target} from {oldChannel} to {newChannel}." +msgstr "{actor} 將 {target} 從 {oldChannel} 移至 {newChannel}。" + +#. Activity log summary for a member who was moved to a voice channel when the channel they came from was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. {channel} is the voice channel they were moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:362 +msgid "{actor} moved {target} to {channel}." +msgstr "{actor} 將 {target} 移至 {channel}。" + +#. Activity log summary for a member who was moved to another voice channel when the channel they were moved to was not recorded. {actor} is the member who did the move, shown as a clickable user chip, or the word System. {target} is the member who was moved, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:367 +msgid "{actor} moved {target} to a different voice channel." +msgstr "{actor} 將 {target} 移動到另一個語音頻道。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:655 msgid "{actor} moved {targetMember} to {channelNode}." msgstr "{actor} 將 {targetMember} 移至 {channelNode}。" @@ -154,16 +504,68 @@ msgstr "{actor} 將 {targetMember} 移至 {channelNode}。" msgid "{actor} moved {targetMember} to another voice channel." msgstr "{actor} 將 {targetMember} 移到其他語音頻道。" +#. Activity log summary for a member who moved themselves from one voice channel to another using moderator tools. {actor} is that member, shown as a clickable user chip. {oldChannel} is the voice channel they were in and {newChannel} is the voice channel they moved to, both shown as channel chips with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:372 +msgid "{actor} moved from {oldChannel} to {newChannel}." +msgstr "{actor} 從 {oldChannel} 移至 {newChannel}。" + +#. Activity log summary for a role whose group of members was moved lower in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:35 +msgid "{actor} moved the role {role} down in the member list." +msgstr "{actor} 將身分組 {role} 在成員列表中向下移動。" + +#. Activity log summary for a role that was moved lower in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:15 +msgid "{actor} moved the role {role} down in the role list." +msgstr "{actor} 將身分組 {role} 在身分組列表中向下移動。" + +#. Activity log summary for a role whose group of members was moved higher in the member list. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:30 +msgid "{actor} moved the role {role} up in the member list." +msgstr "{actor} 將身分組 {role} 在成員列表中向上移動。" + +#. Activity log summary for a role that was moved higher in the community role list, where higher roles rank above lower ones. {actor} is the member who moved it, shown as a clickable user chip, or the word System. {role} is the role that moved, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:10 +msgid "{actor} moved the role {role} up in the role list." +msgstr "{actor} 將身分組 {role} 在身分組列表中向上移動。" + +#. Activity log summary for a member who moved themselves to a voice channel using moderator tools, when the channel they came from was not recorded. {actor} is that member, shown as a clickable user chip. {channel} is the voice channel they moved to, shown as a channel chip with the channel name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:377 +msgid "{actor} moved to {channel}." +msgstr "{actor} 移至 {channel}。" + +#. Activity log summary for a member who moved themselves to another voice channel using moderator tools, when the channel they moved to was not recorded. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:382 +msgid "{actor} moved to a different voice channel." +msgstr "{actor} 移至其他語音頻道。" + +#. Activity log summary when a member paused invites. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:35 +msgid "{actor} paused invites." +msgstr "{actor} 已暫停邀請。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:808 msgid "{actor} performed an audit action on {targetEntity}." msgstr "{actor} 對 {targetEntity} 執行了稽核動作。" +#. Activity log summary for a message that was pinned. Pinned means the message was added to the pinned messages of the channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:135 +msgid "{actor} pinned a message in {channel}." +msgstr "{actor} 在 {channel} 中釘選了一則訊息。" + +#. Activity log summary for a message that was pinned when the channel was not recorded. Pinned means the message was added to the pinned messages of its channel. {actor} is the member who pinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:140 +msgid "{actor} pinned a message." +msgstr "{actor} 釘選了一則訊息。" + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:796 msgid "{actor} pinned a message{0}." msgstr "{actor} 釘選了一則訊息{0}。" +#. Activity log summary for inactive members who were removed from the community in one go. {actor} is the member who started the prune, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:649 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:10 msgid "{actor} pruned inactive members." msgstr "{actor} 清除了閒置成員。" @@ -179,19 +581,249 @@ msgstr "{actor} 移除了 {targetEntity} 在 {channelNode} 的頻道權限。" msgid "{actor} removed channel permissions for {targetEntity}." msgstr "{actor} 移除了 {targetEntity} 的頻道權限。" +#. Activity log summary for a nickname that someone removed from another member in the community. {actor} is the member who removed the nickname, shown as a clickable user chip, or the word System. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . {target} is the member who lost the nickname, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:70 +msgid "{actor} removed the nickname {nick} from {target}." +msgstr "{actor} 移除了 {target} 的暱稱 {nick}。" + +#. Activity log summary when the permission override for one member was removed from a channel, so the member has their usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applied to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:352 +msgid "{actor} removed the permission override for {user} from {channel}." +msgstr "{actor} 已從 {channel} 移除 {user} 的權限覆寫。" + +#. Activity log summary when the permission override for every member of the community was removed from a channel. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:357 +msgid "{actor} removed the permission override for @everyone from {channel}." +msgstr "{actor} 已從 {channel} 中移除 @everyone 的權限覆寫。" + +#. Activity log summary when the permission override for a role was removed from a channel, so the role has its usual permissions there again. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:347 +msgid "{actor} removed the permission override for the role {role} from {channel}." +msgstr "{actor} 移除了 {channel} 中 {role} 的權限覆寫。" + +#. Activity log summary for a role that was taken away from a member. {actor} is the member who removed the role, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:130 +msgid "{actor} removed the role {role} from {target}." +msgstr "{actor} 已將 {target} 的身分組 {role} 移除。" + +#. Activity log summary for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. {actor} is the member who removed the timeout, shown as a clickable user chip, or the word System. {target} is the member whose timeout was removed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:100 +msgid "{actor} removed the timeout for {target}." +msgstr "{actor} 解除了對 {target} 的禁言。" + +#. Activity log summary when a member removed the vanity URL, the custom invite link of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:30 +msgid "{actor} removed the vanity URL {code}." +msgstr "{actor} 移除了自訂網址 {code}。" + +#. Activity log summary for a member who removed the accent color from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:210 +msgid "{actor} removed their community profile accent color." +msgstr "{actor} 移除了他們的社群個人檔案強調色。" + +#. Activity log summary for a member who removed the avatar from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:160 +msgid "{actor} removed their community profile avatar." +msgstr "{actor} 移除了他們的社群個人檔案頭像。" + +#. Activity log summary for a member who removed the banner image from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:175 +msgid "{actor} removed their community profile banner." +msgstr "{actor} 移除了他們的社群個人檔案橫幅。" + +#. Activity log summary for a member who removed the bio from their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:190 +msgid "{actor} removed their community profile bio." +msgstr "{actor} 移除了他們的社群個人檔案簡介。" + +#. Activity log summary for a member who removed the pronouns from their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:200 +msgid "{actor} removed their community profile pronouns." +msgstr "{actor} 移除了他們的社群個人檔案代名詞。" + +#. Activity log summary for a member who removed their own nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:85 +msgid "{actor} removed their nickname {nick}." +msgstr "{actor} 移除了他們的暱稱 {nick}。" + +#. Activity log summary when the only change to a channel category was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:122 +msgid "{actor} renamed the category {oldName} to {newName}." +msgstr "{actor} 將類別 {oldName} 改名為 {newName}。" + +#. Activity log summary when the only change to a channel of a type this app version cannot name was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:127 +msgid "{actor} renamed the channel {oldName} to {newName}." +msgstr "{actor} 將頻道 {oldName} 改名為 {newName}。" + +#. Activity log summary when the only community setting a member changed was the community name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:10 +msgid "{actor} renamed the community from {oldName} to {newName}." +msgstr "{actor} 將社群名稱從 {oldName} 更改為 {newName}。" + +#. Activity log summary for a custom emoji that got a new name. Only the name changed. The emoji was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldEmoji} is the previous name between colons, shown without an image. {newEmoji} is the new name between colons, shown after the emoji image when the emoji still exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:15 +msgid "{actor} renamed the emoji {oldEmoji} to {newEmoji}." +msgstr "{actor} 將表情符號 {oldEmoji} 改名為 {newEmoji}。" + +#. Activity log summary when the only change to a link channel was its name. A link channel is a channel list entry that opens a web address. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:117 +msgid "{actor} renamed the link channel {oldName} to {newName}." +msgstr "{actor} 將連結頻道 {oldName} 重新命名為 {newName}。" + +#. Activity log summary for a role that got a new name and no other change. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:40 +msgid "{actor} renamed the role {oldName} to {newName}." +msgstr "{actor} 將身分組 {oldName} 改名為 {newName}。" + +#. Activity log summary for a sticker that got a new name and no other change. Only the name changed. The sticker was not replaced with a different one. {actor} is the member who renamed it, shown as a clickable user chip, or the word System. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:60 +msgid "{actor} renamed the sticker {oldName} to {newName}." +msgstr "{actor} 將貼圖 {oldName} 改名為 {newName}。" + +#. Activity log summary when the only change to a text channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:107 +msgid "{actor} renamed the text channel {oldName} to {newName}." +msgstr "{actor} 將文字頻道 {oldName} 改名為 {newName}。" + +#. Activity log summary when the only change to a voice channel was its name. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:112 +msgid "{actor} renamed the voice channel {oldName} to {newName}." +msgstr "{actor} 將語音頻道 {oldName} 改名為 {newName}。" + +#. Activity log summary for a webhook whose name was the only thing changed. {actor} is the member who renamed the webhook, shown as a clickable user chip, or the word System. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:100 +msgid "{actor} renamed the webhook {oldName} to {newName}." +msgstr "{actor} 將 Webhook {oldName} 改名為 {newName}。" + +#. Activity log summary for a role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who reset it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:25 +msgid "{actor} reset the member list position for the role {role}." +msgstr "{actor} 重設了身分組 {role} 在成員列表中的位置。" + +#. Activity log summary when a member resumed invites after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. {actor} is the member who made the change, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:40 +msgid "{actor} resumed invites." +msgstr "{actor} 恢復了邀請。" + +#. Activity log summary for a role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. {actor} is the member who set it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:20 +msgid "{actor} set a member list position for the role {role}." +msgstr "{actor} 為身分組 {role} 設定了成員列表位置。" + +#. Activity log summary for a nickname that someone gave to another member who had no nickname in the community. {actor} is the member who set the nickname, shown as a clickable user chip, or the word System. {target} is the member who got the nickname, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:60 +msgid "{actor} set the nickname of {target} to {nick}." +msgstr "{actor} 將 {target} 的暱稱設為 {nick}。" + +#. Activity log summary when a member gave the community a vanity URL, the custom invite link of the community, when it had none. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:20 +msgid "{actor} set the vanity URL to {code}." +msgstr "{actor} 將社群的自訂網址設為 {code}。" + +#. Activity log summary for a member who added or changed the accent color on their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:205 +msgid "{actor} set their community profile accent color to {color}." +msgstr "{actor} 將其社群個人檔案的強調色設為 {color}。" + +#. Activity log summary for a member who added an avatar to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:150 +msgid "{actor} set their community profile avatar." +msgstr "{actor} 設定了他們的社群個人檔案頭像。" + +#. Activity log summary for a member who added a banner image to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member, not to the community. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:165 +msgid "{actor} set their community profile banner." +msgstr "{actor} 設定了他們的社群個人檔案橫幅。" + +#. Activity log summary for a member who added a bio to their community profile. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:180 +msgid "{actor} set their community profile bio to {text}." +msgstr "{actor} 將他們的社群個人檔案簡介設為 {text}。" + +#. Activity log summary for a member who added or changed the pronouns on their community profile. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member, not to the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:195 +msgid "{actor} set their community profile pronouns to {text}." +msgstr "{actor} 將其社群個人檔案的代名詞設為 {text}。" + +#. Activity log summary for a member who gave themselves a nickname in the community. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:75 +msgid "{actor} set their nickname to {nick}." +msgstr "{actor} 將自己的暱稱設為 {nick}。" + +#. Activity log summary for a moderator who stopped a member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who stopped it, shown as a clickable user chip, or the word System. {target} is the member who can no longer hear others, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:115 +msgid "{actor} stopped {target} from hearing others in this community." +msgstr "{actor} 讓 {target} 無法在此社群中聽到其他人說話。" + +#. Activity log summary for a member who was given a timeout. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. Use the same term as the "Timeout" and "Time out members" labels. {actor} is the member who gave the timeout, shown as a clickable user chip, or the word System. {target} is the member in timeout, shown as a clickable user chip. {date} is when the timeout ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:90 +msgid "{actor} timed out {target} until {date}." +msgstr "{actor} 將 {target} 禁言至 {date}。" + +#. Activity log summary when the community owner made another member the owner of the community. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:15 +msgid "{actor} transferred community ownership to {user}." +msgstr "{actor} 將社群擁有權轉移給 {user}。" + +#. Activity log summary for a moderator who turned the microphone of a member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The action that lets a member hear others again is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone back on, shown as a clickable user chip, or the word System. {target} is the member who can be heard again, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:110 +msgid "{actor} turned {target}'s microphone back on in this community." +msgstr "{actor} 在這個社群中重新開啟了 {target} 的麥克風。" + +#. Activity log summary for a moderator who turned off the microphone of a member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community and collides with the setting that silences community notifications. The action that stops a member from hearing others is a different action and must read clearly differently. This is a past tense record of an action that already happened, never an instruction to the reader. {actor} is the member who turned the microphone off, shown as a clickable user chip, or the word System. {target} is the member whose microphone was turned off, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:105 +msgid "{actor} turned off {target}'s microphone in this community." +msgstr "{actor} 在這個社群中關閉了 {target} 的麥克風。" + +#. Activity log summary for a user whose ban from the community was lifted. A ban is the community ban, not the feature that blocks a user. {actor} is the member who lifted the ban, shown as a clickable user chip, or the word System. {target} is the unbanned user, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:30 +msgid "{actor} unbanned {target}." +msgstr "{actor} 解除了 {target} 的停權。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:619 msgid "{actor} unbanned {targetMember}." msgstr "{actor} 解除了 {targetMember} 的停權。" +#. Activity log summary for a message that was unpinned. Unpinned means the message was taken off the pinned messages of the channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. {channel} is the channel the message is in, shown as a channel name chip, or the deleted-channel label when the channel no longer exists. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:145 +msgid "{actor} unpinned a message in {channel}." +msgstr "{actor} 在 {channel} 中取消釘選了一則訊息。" + +#. Activity log summary for a message that was unpinned when the channel was not recorded. Unpinned means the message was taken off the pinned messages of its channel. It is the opposite of pinned. The message was not deleted. {actor} is the member who unpinned it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:150 +msgid "{actor} unpinned a message." +msgstr "{actor} 取消了訊息的釘選。" + #. placeholder {0}: channelNode ? <> in {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:802 msgid "{actor} unpinned a message{0}." msgstr "{actor} 取消釘選了一則訊息{0}。" +#. Activity log summary for a change to a member of the community when several things changed at once, or when the change was not recorded. Each change is listed as a detail line below. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {target} is the member who was changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:220 +msgid "{actor} updated {target}." +msgstr "{actor} 更新了 {target}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:625 msgid "{actor} updated {targetMember}." msgstr "{actor} 更新了 {targetMember}。" +#. Activity log summary for a sticker that was edited when the sticker name is not known. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:70 +msgid "{actor} updated a sticker." +msgstr "{actor} 更新了貼圖。" + +#. Activity log summary for changes to a webhook whose name is not known. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:110 +msgid "{actor} updated a webhook." +msgstr "{actor} 更新了 Webhook。" + +#. Activity log summary for a custom emoji that was edited when neither a change nor the emoji name is known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:25 +msgid "{actor} updated an emoji." +msgstr "{actor} 更新了一個表情符號。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:584 msgid "{actor} updated channel permissions for {targetEntity} in {channelNode}." msgstr "{actor} 更新了 {targetEntity} 在 {channelNode} 的頻道權限。" @@ -204,35 +836,112 @@ msgstr "{actor} 更新了 {targetEntity} 的頻道權限。" msgid "{actor} updated roles for {targetMember}." msgstr "{actor} 更新了 {targetMember} 的身分組。" +#. Activity log summary when settings of a channel category were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the category, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:174 +msgid "{actor} updated the category {channel}." +msgstr "{actor} 更新了類別 {channel}。" + +#. Activity log summary when settings of a channel of a type this app version cannot name were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:179 +msgid "{actor} updated the channel {channel}." +msgstr "{actor} 更新了頻道 {channel}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:559 msgid "{actor} updated the channel {namedTarget}." msgstr "{actor} 更新了頻道「{namedTarget}」。" +#. Activity log summary when a member changed community settings. Each change is listed as a detail line under it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:550 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:5 msgid "{actor} updated the community settings." msgstr "{actor} 更新了社群設定。" +#. Activity log summary for a custom emoji that was edited when no change to show was recorded. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {emoji} is the emoji, shown as its image when it still exists, followed by its name between colons, for example :blobcat:. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:20 +msgid "{actor} updated the emoji {emoji}." +msgstr "{actor} 更新了表情符號 {emoji}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:741 msgid "{actor} updated the emoji {namedTarget}." msgstr "{actor} 更新了表情符號「{namedTarget}」。" +#. Activity log summary for a change to an invite link. {actor} is the member who changed the invite, shown as a clickable user chip, or the word System. {code} is the invite code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:40 +msgid "{actor} updated the invite {code}." +msgstr "{actor} 更新了邀請連結 {code}。" + #. placeholder {0}: channelNode ? <> for {channelNode} : null #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:703 msgid "{actor} updated the invite {namedTarget}{0}." msgstr "{actor} 更新了邀請「{namedTarget}」{0}。" +#. Activity log summary when settings of a link channel were changed. A link channel is a channel list entry that opens a web address. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:169 +msgid "{actor} updated the link channel {channel}." +msgstr "{actor} 更新了連結頻道 {channel}。" + +#. Activity log summary when the permission override for one member in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {user} is the member the override applies to, shown as a clickable user chip. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:337 +msgid "{actor} updated the permission override for {user} in {channel}." +msgstr "{actor} 更新了 {channel} 中 {user} 的權限覆寫。" + +#. Activity log summary when the permission override for every member of the community in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. Keep @everyone unchanged. It is the name of the role that includes all members. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:342 +msgid "{actor} updated the permission override for @everyone in {channel}." +msgstr "{actor} 更新了 {channel} 中 @everyone 的權限覆寫。" + +#. Activity log summary when the permission override for a role in a channel was changed. The permission changes are listed as detail rows below it. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {role} is the role, shown as a role chip with its name. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:332 +msgid "{actor} updated the permission override for the role {role} in {channel}." +msgstr "{actor} 更新了 {channel} 中身分組 {role} 的權限覆寫。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:684 msgid "{actor} updated the role {namedTarget}." msgstr "{actor} 更新了身分組「{namedTarget}」。" +#. Activity log summary for a role that was edited. The changes are listed below it as detail lines when they are known. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {role} is the role, shown in bold with its name, @everyone for the default role every member has, or deleted-role when its name is unknown. The app adds the bold, so do not add ** or . Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:45 +msgid "{actor} updated the role {role}." +msgstr "{actor} 更新了身分組 {role}。" + +#. Activity log summary for a change to the roles of a member when several roles changed at once or the changed role was not recorded. Each role that changed is listed as a detail line below. {actor} is the member who changed the roles, shown as a clickable user chip, or the word System. {target} is the member whose roles changed, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:135 +msgid "{actor} updated the roles of {target}." +msgstr "{actor} 更新了 {target} 的身分組。" + +#. Activity log summary for a sticker that was edited. The changes are listed as detail lines below it. {actor} is the member who edited it, shown as a clickable user chip, or the word System. {name} is the sticker name, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:65 +msgid "{actor} updated the sticker {name}." +msgstr "{actor} 更新了貼圖 {name}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:759 msgid "{actor} updated the sticker {namedTarget}." msgstr "{actor} 更新了貼圖「{namedTarget}」。" +#. Activity log summary when settings of a text channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:159 +msgid "{actor} updated the text channel {channel}." +msgstr "{actor} 更新了文字頻道 {channel}。" + +#. Activity log summary when settings of a voice channel were changed. The changes are listed as detail rows below it. {actor} is the member who made the change, shown as a clickable user chip, or the word System. {channel} is the channel, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:164 +msgid "{actor} updated the voice channel {channel}." +msgstr "{actor} 更新了語音頻道 {channel}。" + +#. Activity log summary for changes to a webhook. The changes are listed as details under it. {actor} is the member who changed the webhook, shown as a clickable user chip, or the word System. {name} is the name of the webhook, shown in bold by the app. Do not add ** or around it. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:105 +msgid "{actor} updated the webhook {name}." +msgstr "{actor} 更新了 Webhook {name}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabUtils.tsx:723 msgid "{actor} updated the webhook {namedTarget}." msgstr "{actor} 更新了 Webhook「{namedTarget}」。" +#. Activity log summary for a member who changed several things about their own community profile or membership at once, or when the change was not recorded. A community profile is the profile a member uses only in this community, in place of their global profile. It belongs to the member, not to the community. Each change is listed as a detail line below. "Their" means the same member as {actor}. {actor} is that member, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:215 +msgid "{actor} updated their community profile." +msgstr "{actor} 更新了他們的社群個人檔案。" + #. Label in the user settings voice activity section. Preserve {additionalCount}; it is inserted by code. #: src/features/user/components/profile/VoiceActivitySection.tsx:12 msgid "{additionalCount, plural, one {And # other call} other {And # other calls}}" @@ -420,6 +1129,11 @@ msgstr "{count, plural, one {# 個項目} other {# 個項目}}" msgid "{count, plural, one {# member} other {# members}}" msgstr "{count, plural, one {# 位成員} other {# 位成員}}" +#. Activity log item that stands in for the permission names left out of a long list. It is the last item of a list joined with "and", for example "Send messages, Manage roles, and 3 more permissions". The app joins the list and adds the commas and the word for "and" in your language, so do not add them here. It counts the other permissions in the same list. It never means that permissions were added. {count} is an ICU plural with the number of permissions left out, and # shows that number. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:30 +msgid "{count, plural, one {# more permission} other {# more permissions}}" +msgstr "{count, plural, one {另外 # 個權限} other {另外 # 個權限}}" + #: src/features/channel/components/direct_message/DMWelcomeSection.tsx:246 msgid "{count, plural, one {# mutual community} other {# mutual communities}}" msgstr "{count, plural, one {# 個共同社群} other {# 個共同社群}}" @@ -554,6 +1268,16 @@ msgstr "{count, plural, one {顯示 # 個裝置} other {顯示 # 個裝置}}" msgid "{count, plural, one {Sign out # device} other {Sign out # devices}}" msgstr "{count, plural, one {登出 # 個裝置} other {登出 # 個裝置}}" +#. Activity log detail under a created or deleted invite link. It records the use limit the invite was made with, not how many times it was used. {count} is an ICU plural with the most times the invite could be used before it stopped working. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:30 +msgid "{count, plural, one {The invite was limited to # use.} other {The invite was limited to # uses.}}" +msgstr "{count, plural, one {邀請的有效使用次數限制為 # 次。} other {邀請的有效使用次數限制為 # 次。}}" + +#. Activity log detail under a deleted invite link. {count} is an ICU plural with how many times the invite had been used before it was deleted. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:75 +msgid "{count, plural, one {The invite was used # time.} other {The invite was used # times.}}" +msgstr "{count, plural, one {邀請已被使用 # 次。} other {邀請已被使用 # 次。}}" + #. Body text of the emoji upload progress modal. {count} is the number of emojis being uploaded. #: src/features/emoji/components/modals/EmojiUploadModal.tsx:11 msgid "{count, plural, one {Uploading # emoji. This may take a little while.} other {Uploading # emojis. This may take a little while.}}" @@ -789,7 +1513,7 @@ msgid "{fps} FPS" msgstr "{fps} FPS" #. Short label in the app layout channel list content. Preserve {guildName}; it is inserted by code. -#: src/features/app/components/layout/ChannelListContent.tsx:84 +#: src/features/app/components/layout/ChannelListContent.tsx:87 msgid "{guildName} channels" msgstr "{guildName} 頻道" @@ -2310,7 +3034,7 @@ msgid "Activity" msgstr "動態" #. Page title of the activity-log tab in community settings (the user-facing name for the audit log). -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:108 msgid "Activity log" msgstr "活動紀錄" @@ -2713,10 +3437,60 @@ msgstr "已新增 {0}。" msgid "Added {length, plural, one {# local file reference} other {# local file references}}." msgstr "已新增 {length, plural, one {# 個本機檔案參考} other {# 個本機檔案參考}}。" +#. Activity log detail line under a community settings update, shown when the community got a chat embed background, the image shown behind its invite embeds in chat, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:111 +msgid "Added a chat embed background." +msgstr "新增了聊天嵌入背景。" + +#. Activity log detail line under a community settings update, shown when the community got a banner image where it had none. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:66 +msgid "Added a community banner." +msgstr "新增了社群橫幅。" + +#. Activity log detail line under a community settings update, shown when the community got an icon where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:51 +msgid "Added a community icon." +msgstr "新增了社群圖示。" + +#. Activity log detail row under a created or updated channel that now shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the custom warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:71 +msgid "Added a content warning with the text {text}." +msgstr "新增了內容警告,文字為 {text}。" + +#. Activity log detail row under a created or updated channel that now shows a content warning, with no custom text, before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:76 +msgid "Added a content warning." +msgstr "新增了內容警告。" + +#. Activity log detail under a changed webhook that got an avatar image when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:125 +msgid "Added an avatar." +msgstr "新增了個人頭像。" + +#. Activity log detail line under a community settings update, shown when the community got an invite background, the image behind its invite page, where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:91 +msgid "Added an invite background." +msgstr "新增了邀請背景圖片。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:545 msgid "Added roles." msgstr "已新增身分組。" +#. Activity log detail line under a change to a member, for an avatar added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:285 +msgid "Added the member's community profile avatar." +msgstr "已新增成員的社群個人檔案頭像。" + +#. Activity log detail line under a change to a member, for a banner image added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Added is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:300 +msgid "Added the member's community profile banner." +msgstr "已新增成員的社群個人檔案橫幅。" + +#. Activity log detail line under a change to the roles of a member, for one role the member got. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:240 +msgid "Added the role {role}." +msgstr "新增了身分組 {role}。" + #. Button or menu action label in the messaging commands. Keep it concise. #: src/features/messaging/commands/SavedMessageCommands.tsx:20 msgid "Added to bookmarks" @@ -2906,7 +3680,7 @@ msgstr "對齊控制項僅適用於較寬的螢幕" #. Short label in the discovery category bottom sheet. Keep it concise. #. Tab label in the DM friends view showing all friends. #. Tab label in the mobile memes (saved media) picker. Shows all saved media regardless of type. -#: src/features/app/config/AuditLogConstants.ts:148 +#: src/features/app/config/AuditLogConstants.ts:163 #: src/features/channel/components/direct_message/DMFriendsView.tsx:41 #: src/features/channel/components/guild_members_page/GuildMembersPageDescriptors.ts:10 #: src/features/channel/components/MobileMemesPicker.tsx:42 @@ -2935,7 +3709,7 @@ msgid "All <0/>, forever. No billing, no renewals." msgstr "永久擁有所有 <0/>。不再扣款,也不需續訂。" #. Default option in the activity log "Filter by action" dropdown. Means no action-type filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:85 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:99 msgid "All actions" msgstr "所有動作" @@ -3001,10 +3775,12 @@ msgstr "所有語言" msgid "All members" msgstr "所有成員" +#. Activity log value for the default notification setting of a community where members are notified about every message. #. Notification level option. Sends a push for every message in the channel or community. Paired with "Only mentions" and "Nothing". #. Short label in the default notifications section. Keep it concise. #. Short label in the visual tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:20 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:86 #: src/features/i18n/utils/CommonMessageDescriptors.ts:338 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:21 msgid "All messages" @@ -3022,7 +3798,7 @@ msgid "All time" msgstr "所有時間" #. Default option in the activity log "Filter by user" dropdown. Means no user filter is applied. Short standalone label. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:80 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:94 msgid "All users" msgstr "所有使用者" @@ -3197,6 +3973,16 @@ msgstr "已允許 {0} 並移除 {1} 的允許。" msgid "Allowed {0}." msgstr "已允許 {0}。" +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly allows. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:363 +msgid "Allowed {permissions}." +msgstr "允許 {permissions}。" + +#. Activity log detail line under a created or edited role whose Allow mentions for this role setting was turned on. Every member can now mention the role to notify the members who have it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:100 +msgid "Allowed all members to mention this role." +msgstr "允許所有成員提及此身分組。" + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:186 msgid "Allowed callers" msgstr "允許的來電者" @@ -3205,15 +3991,35 @@ msgstr "允許的來電者" msgid "Allowed everyone to mention this role." msgstr "已允許所有人提及此身分組。" +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Allowed is the past tense verb here, not an adjective. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:176 +msgid "Allowed flexible text channel names." +msgstr "允許彈性的文字頻道名稱。" + #: src/features/user/components/modals/tabs/privacy_safety_tab/CommunicationTab.tsx:225 msgid "Allowed invites" msgstr "允許的邀請" +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned on. Members of other communities can now clone the custom emojis of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:221 +msgid "Allowed others to clone this community's emojis." +msgstr "允許其他人複製這個社群的表情符號。" + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned on. Members of other communities can now clone the stickers of this community into their own communities. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not the label of the setting. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:231 +msgid "Allowed others to clone this community's stickers." +msgstr "允許其他人複製這個社群的貼圖。" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/ApplicationsIndex.ts:56 msgid "Allowed redirects" msgstr "允許的重新導向" +#. Activity log detail row under a created voice channel that allows a non-default number of simultaneous connections, such as several devices, from each member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with the number of connections allowed per member. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:96 +msgid "Allowed up to {count, plural, one {# connection} other {# connections}} per member." +msgstr "允許每位成員最多 {count, plural, one {# 個連線} other {# 個連線}}。" + #. Title of the error modal shown when the channel or category no longer exists. #: src/features/app/components/alerts/ChannelDeleteFailedModal.tsx:30 msgid "Already deleted" @@ -4855,6 +5661,11 @@ msgstr "停權成員" msgid "Ban members from the community, with the option to delete their recent messages." msgstr "將成員從社群停權,並可選擇刪除他們近期的訊息。" +#. Activity log label next to the reason that was given when a member was banned. Shown in the expanded entry details, like the Reason label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:25 +msgid "Ban reason" +msgstr "停權原因" + #. IAR modal: quick-action card title for banning the reported user (moderator-only). #: src/features/moderation/components/report_modal/IARModalCopy.ts:121 msgid "Ban this user" @@ -5109,6 +5920,11 @@ msgstr "封鎖使用者" msgid "Blocked" msgstr "已封鎖" +#. Activity log detail line under a change to a member, for a block a moderator put on the member. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the given date. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is when the block ends, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:250 +msgid "Blocked the member from sending messages, reacting and joining voice until {date}." +msgstr "已禁止該成員傳送訊息、新增反應和加入語音,直到 {date}。" + #. Settings search entry label. Names the settings search entry in the settings UI. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings section label for blocked users. @@ -5240,7 +6056,7 @@ msgid "Bot" msgstr "機器人" #. Audit log entry label. A bot account was added to the community. -#: src/features/app/config/AuditLogConstants.ts:68 +#: src/features/app/config/AuditLogConstants.ts:83 #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:26 msgid "Bot added" msgstr "已新增機器人" @@ -6035,7 +6851,7 @@ msgid "Category deleted" msgstr "類別已刪除" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:75 +#: src/features/app/components/layout/ChannelListContent.tsx:78 msgid "Category full" msgstr "類別已滿" @@ -6074,6 +6890,8 @@ msgid "Center" msgstr "置中" #. Audit log value for invite splash alignment: centered image placement. +#. Audit log value for invite splash alignment: centered image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:40 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:66 msgid "Centered" msgstr "置中" @@ -6298,11 +7116,183 @@ msgstr "變更您的使用者名稱" msgid "Changed nickname from {0} to {1}." msgstr "將暱稱從「{0}」改為「{1}」。" +#. Activity log detail row under an updated channel whose slowmode, the wait between messages from one member, changed. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the wait before the change and {newDuration} the wait after, both shown as formatted durations such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:250 +msgid "Changed slowmode from {oldDuration} to {newDuration}." +msgstr "將慢速模式從 {oldDuration} 變更為 {newDuration}。" + +#. Activity log detail line under a community settings update, shown when the AFK channel, the voice channel idle members are moved to, was changed to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous AFK channel and {newChannel} is the new AFK channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:161 +msgid "Changed the AFK channel from {oldChannel} to {newChannel}." +msgstr "已將 AFK 頻道從 {oldChannel} 變更為 {newChannel}。" + +#. Activity log detail line under a community settings update, shown when the time before idle voice members are moved to the AFK channel changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDuration} is the previous timeout and {newDuration} is the new timeout, each shown as a formatted duration phrase such as 5 minutes or 1 hour. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:171 +msgid "Changed the AFK timeout from {oldDuration} to {newDuration}." +msgstr "將 AFK 閒置時間從 {oldDuration} 變更為 {newDuration}。" + +#. Activity log detail row under an updated voice channel whose audio bitrate changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldKbps} is the bitrate before the change and {newKbps} the bitrate after, both plain numbers of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:260 +msgid "Changed the audio quality from {oldKbps} kbps to {newKbps} kbps." +msgstr "音訊品質從 {oldKbps} kbps 變更為 {newKbps} kbps。" + +#. Activity log detail under a changed webhook whose avatar image was replaced with a different one. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:130 +msgid "Changed the avatar." +msgstr "變更了頭像。" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:462 msgid "Changed the bitrate to {0}." msgstr "已將位元速率變更為 {0}。" +#. Activity log detail line under a change to a member, for a block that was already running and was given a new end. The block stops the member from sending messages, reacting and joining voice, and it lifts on its own at the new end. Spell the effect out the way the English does. Do not name it with a word for a ban, a kick, a mute, a suspension or a waiting period, and do not say that time ran out. Keep the three things that are blocked. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {date} is the new end of the block, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:255 +msgid "Changed the block on sending messages, reacting and joining voice to end at {date}." +msgstr "變更了禁止傳送訊息、新增反應和加入語音的結束時間,改為 {date}。" + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:116 +msgid "Changed the chat embed background." +msgstr "變更了聊天嵌入背景。" + +#. Activity log detail line under a community settings update, shown when the community banner image was replaced with a different image. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:71 +msgid "Changed the community banner." +msgstr "變更了社群橫幅。" + +#. Activity log detail line under a community settings update, shown when the community icon was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:56 +msgid "Changed the community icon." +msgstr "變更了社群圖示。" + +#. Activity log detail row under an updated voice channel whose number of simultaneous connections, such as several devices, allowed from each member changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the number before the change and {newCount} the number after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:275 +msgid "Changed the connections per member from {oldCount} to {newCount}." +msgstr "已將每位成員的連線數從 {oldCount} 變更為 {newCount}。" + +#. Activity log detail row under an updated channel whose custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the warning text before the change and {newText} the text after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:240 +msgid "Changed the content warning text from {oldText} to {newText}." +msgstr "變更了內容警告文字,從 {oldText} 改為 {newText}。" + +#. Activity log detail line under an edited role whose uploaded icon image was replaced with another image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:130 +msgid "Changed the custom role icon." +msgstr "變更了自訂身分組圖示。" + +#. Activity log detail line under a community settings update, shown when the custom content warning text changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous warning text and {newText} is the new warning text, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:276 +msgid "Changed the custom warning text from {oldText} to {newText}." +msgstr "變更了自訂警告文字,從 {oldText} 改為 {newText}。" + +#. Activity log detail line under a community settings update, shown when the default notification setting for members changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldSetting} is the previous setting and {newSetting} is the new setting, each shown as All messages or Mentions only. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:151 +msgid "Changed the default notification setting from {oldSetting} to {newSetting}." +msgstr "已將預設通知設定從 {oldSetting} 變更為 {newSetting}。" + +#. Activity log detail line under an edited sticker, for a sticker description that was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the previous description and {newText} is the new one, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:80 +msgid "Changed the description from {oldText} to {newText}." +msgstr "變更了說明,從 {oldText} 改為 {newText}。" + +#. Activity log detail line under a community settings update, shown when the explicit content filter setting changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldFilter} is the previous setting and {newFilter} is the new setting, each shown as Off, Filter members without roles or Filter everyone. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:246 +msgid "Changed the explicit content filter from {oldFilter} to {newFilter}." +msgstr "已將露骨內容篩選器從 {oldFilter} 變更為 {newFilter}。" + +#. Activity log detail line under a community settings update, shown when the alignment of the invite background image changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldAlignment} is the previous alignment and {newAlignment} is the new alignment, each shown as Centered, Left aligned or Right aligned. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:106 +msgid "Changed the invite background alignment from {oldAlignment} to {newAlignment}." +msgstr "變更了邀請背景圖片的對齊方式,從 {oldAlignment} 改為 {newAlignment}。" + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was replaced with a different image. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:96 +msgid "Changed the invite background." +msgstr "變更了邀請背景。" + +#. Activity log detail row under an updated link channel whose web address changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldUrl} is the address before the change and {newUrl} the address after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:205 +msgid "Changed the link from {oldUrl} to {newUrl}." +msgstr "變更了連結,從 {oldUrl} 改為 {newUrl}。" + +#. Activity log detail line under a change to a member, for a replaced avatar on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as an avatar of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:290 +msgid "Changed the member's community profile avatar." +msgstr "變更了成員的社群個人檔案頭像。" + +#. Activity log detail line under a change to a member, for a replaced banner image on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:305 +msgctxt "audit-log-member-profile" +msgid "Changed the member's community profile banner." +msgstr "變更了成員的社群個人檔案橫幅。" + +#. Activity log detail line under a change to a member, for a changed bio on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:322 +msgid "Changed the member's community profile bio to {text}." +msgstr "將成員的社群個人檔案簡介變更為 {text}。" + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldDate} is the previous threshold and {newDate} is the new threshold, both shown as formatted dates and times. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:201 +msgid "Changed the message history threshold from {oldDate} to {newDate}." +msgstr "已將訊息紀錄門檻從 {oldDate} 變更為 {newDate}。" + +#. Activity log detail line under an edited role that got a new name along with other changes. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the role name before the change and {newName} is the role name after it. Do not swap them. The app shows both in bold, so do not add ** or around them. +#. Activity log detail line under an edited sticker, for a sticker that got a new name. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Keep the word name so the line says what changed. {oldName} is the previous sticker name and {newName} is the new one, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail row under an updated channel whose name changed along with other settings. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the name before the change and {newName} the name after, both shown in bold. The app adds the bold, so do not add ** or . +#. Activity log detail under a changed webhook. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous name of the webhook and {newName} is its new name, both shown in bold by the app. Do not add ** or around them. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:185 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:75 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:115 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:55 +msgid "Changed the name from {oldName} to {newName}." +msgstr "已將名稱從 {oldName} 變更為 {newName}。" + +#. Activity log detail line under a change to a member, for a changed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldNick} is the previous nickname and {newNick} is the new nickname. Keep {oldNick} as the old value and {newNick} as the new value. The app shows both in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:230 +msgid "Changed the nickname from {oldNick} to {newNick}." +msgstr "已將暱稱從 {oldNick} 變更為 {newNick}。" + +#. Activity log detail line under an edited role whose name color was replaced with another color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldColor} is the color before the change and {newColor} is the color after it. Do not swap them. Each is a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:80 +msgid "Changed the role color from {oldColor} to {newColor}." +msgstr "變更身分組顏色,從 {oldColor} 改為 {newColor}。" + +#. Activity log detail line under an edited role whose standard emoji icon was replaced with another emoji. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldEmoji} is the emoji character before the change and {newEmoji} is the emoji character after it. Do not swap them. Both are shown in bold. Do not add ** or around them. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:115 +msgid "Changed the role icon from {oldEmoji} to {newEmoji}." +msgstr "將身分組圖示從 {oldEmoji} 變更為 {newEmoji}。" + +#. Activity log detail line under a community settings update, shown when the system channel, where the app posts messages such as member joins, was moved to another channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the previous system channel and {newChannel} is the new system channel, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:131 +msgid "Changed the system channel from {oldChannel} to {newChannel}." +msgstr "已將系統頻道從 {oldChannel} 更改為 {newChannel}。" + +#. Activity log detail row under an updated channel whose topic changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldText} is the topic before the change and {newText} the topic after, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:220 +msgid "Changed the topic from {oldText} to {newText}." +msgstr "變更了主題,從 {oldText} 改為 {newText}。" + +#. Activity log detail row under an updated voice channel whose maximum number of people who can join at once changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCount} is the maximum before the change and {newCount} the maximum after, both plain numbers. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:265 +msgid "Changed the user limit from {oldCount} to {newCount}." +msgstr "已將使用者上限從 {oldCount} 變更為 {newCount}。" + +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was replaced. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCode} is the previous vanity URL code and {newCode} is the new vanity URL code, both shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:306 +msgid "Changed the vanity URL from {oldCode} to {newCode}." +msgstr "已將自訂網址從 {oldCode} 變更為 {newCode}。" + +#. Activity log detail line under a community settings update, shown when the member verification level changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldLevel} is the previous level and {newLevel} is the new level, each shown as None, Low, Medium, High or Very high. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:241 +msgid "Changed the verification level from {oldLevel} to {newLevel}." +msgstr "已將驗證等級從 {oldLevel} 變更為 {newLevel}。" + +#. Activity log detail row under an updated voice channel whose fixed voice server region changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldRegion} is the region identifier before the change and {newRegion} the identifier after, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:285 +msgid "Changed the voice region from {oldRegion} to {newRegion}." +msgstr "將語音區域從 {oldRegion} 變更為 {newRegion}。" + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:235 msgid "Changed the voice region to {0}." @@ -6325,7 +7315,7 @@ msgstr "頻道" #. Short label in the channel layout. Keep it concise. #. Short label in the channel source preview. Keep it concise. #. Slash-command argument type name, spoken by screen readers for an argument that takes a channel. -#: src/features/app/config/AuditLogConstants.ts:168 +#: src/features/app/config/AuditLogConstants.ts:183 #: src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelDetailsBottomSheetShared.ts:24 #: src/features/channel/components/ChannelLayout.tsx:13 #: src/features/channel/components/ChannelSourcePreview.tsx:28 @@ -6468,17 +7458,17 @@ msgid "Channel or category" msgstr "頻道或類別" #. Audit log entry label. A channel permission override was added for a role or member. -#: src/features/app/config/AuditLogConstants.ts:24 +#: src/features/app/config/AuditLogConstants.ts:39 msgid "Channel overwrite added" msgstr "頻道覆寫已新增" #. Audit log entry label. A channel permission override was removed for a role or member. -#: src/features/app/config/AuditLogConstants.ts:32 +#: src/features/app/config/AuditLogConstants.ts:47 msgid "Channel overwrite removed" msgstr "頻道覆寫已移除" #. Audit log entry label. A channel permission override was edited for a role or member. -#: src/features/app/config/AuditLogConstants.ts:28 +#: src/features/app/config/AuditLogConstants.ts:43 msgid "Channel overwrite updated" msgstr "頻道覆寫已更新" @@ -7815,7 +8805,7 @@ msgstr "成員人數超過 250 人的社群會強制套用「只接收提及通 #. Developer / debug surface — keep terse and technical. Fallback label used in the IAR preview tool when no community context is supplied. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short option type label in the OAuth bot invite destination selector. -#: src/features/app/config/AuditLogConstants.ts:152 +#: src/features/app/config/AuditLogConstants.ts:167 #: src/features/auth/components/pages/oauth_authorize_page/OAuthCommunityStep.tsx:48 #: src/features/moderation/components/report_modal/IARModalPreview.tsx:16 #: src/features/user/components/settings_utils/GuildSettingsConstants.ts:253 @@ -10941,6 +11931,11 @@ msgstr "要刪除您在此對話中的所有訊息嗎?" msgid "Deleted" msgstr "已刪除" +#. Activity log detail line under a ban, shown when the ban also deleted the messages the banned user sent shortly before it. This matches the "Delete message history" choice in the ban dialog. "The member" is the banned user, a single person. {duration} is how far back from the ban the messages were deleted, shown as a full duration phrase such as "1 hour" or "7 days". The number and unit change at runtime, so do not put an article, adjective or case ending next to {duration} that has to agree with it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:25 +msgid "Deleted {duration} of the member's recent message history." +msgstr "已刪除該成員最近 {duration} 的訊息記錄。" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:114 msgid "Deleted text" @@ -10953,6 +11948,21 @@ msgstr "已刪除的文字" msgid "Deleted your messages." msgstr "已刪除您的訊息。" +#. Activity log name shown in place of a category name when the category no longer exists and its name was not recorded. It has no # sign in front of it, for example "Deleted deleted-category." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for category as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:10 +msgid "deleted-category" +msgstr "已刪除的類別" + +#. Activity log name shown in place of a channel name when the channel no longer exists and its name was not recorded. The app puts a # sign in front of it, so it reads like a channel name, for example "Deleted #deleted-channel." Translate it. Write it in lowercase with a hyphen between the words, like a channel name, where your script allows it. Use the same word for channel as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:5 +msgid "deleted-channel" +msgstr "已刪除的頻道" + +#. Activity log name shown in place of a role name when the role no longer exists and its name was not recorded, for example "Deleted the role deleted-role." Translate it. Write it in lowercase with a hyphen between the words, like the other deleted labels, where your script allows it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:15 +msgid "deleted-role" +msgstr "已刪除的身分組" + #. Button or menu action label in the buttons tab. Keep it concise. Keep the tone plain and specific. #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabButtonsTab.tsx:121 msgid "Deleted." @@ -10974,6 +11984,11 @@ msgstr "已拒絕 {0},並移除 {1} 的拒絕設定。" msgid "Denied {0}." msgstr "已拒絕 {0}。" +#. Activity log detail row under an added or updated channel permission override, listing permissions the override now explicitly denies. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:368 +msgid "Denied {permissions}." +msgstr "拒絕了 {permissions}。" + #. Country name. EU member state in the illegal-content report country dropdown. #: src/features/moderation/components/report/OptionDescriptors.ts:135 msgid "Denmark" @@ -12749,7 +13764,7 @@ msgstr "已取消隱藏嵌入內容" #. Collapsible group heading in the Theme Studio tokens list, for emoji tokens. #. Column header for the custom emoji image or glyph. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:172 +#: src/features/app/config/AuditLogConstants.ts:187 #: src/features/emoji/components/emojis/EmojiListItem.tsx:337 #: src/features/theme_studio/sections/TokenGroups.ts:114 #: src/features/user/components/settings_utils/section_registry/SharedDescriptors.ts:162 @@ -12793,12 +13808,12 @@ msgid "Emoji cloning enabled" msgstr "表情符號複製已啟用" #. Audit log entry label. A custom emoji was added to the community. -#: src/features/app/config/AuditLogConstants.ts:108 +#: src/features/app/config/AuditLogConstants.ts:123 msgid "Emoji created" msgstr "已建立表情符號" #. Audit log entry label. A custom emoji was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:116 +#: src/features/app/config/AuditLogConstants.ts:131 msgid "Emoji deleted" msgstr "已刪除表情符號" @@ -12842,7 +13857,7 @@ msgid "Emoji slots full" msgstr "表情符號欄位已滿" #. Audit log entry label. A custom emoji was renamed or edited. -#: src/features/app/config/AuditLogConstants.ts:112 +#: src/features/app/config/AuditLogConstants.ts:127 msgid "Emoji updated" msgstr "表情符號已更新" @@ -14534,7 +15549,7 @@ msgid "Filter by account creation date" msgstr "依帳號建立日期篩選" #. Label of the action-type filter dropdown in the activity log tab. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:106 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:120 msgid "Filter by action" msgstr "依動作篩選" @@ -14572,18 +15587,22 @@ msgstr "依身分組篩選" #. Label of the user filter dropdown in the activity log tab. #. Short label in the search user filter sheet. Keep it concise. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:102 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:116 #: src/features/search/components/search/UserFilterSheet.tsx:25 msgid "Filter by user" msgstr "依使用者篩選" +#. Activity log value for the explicit content filter setting that filters messages from every member. #. Explicit content filter option in the community moderation settings tab. Filters messages from every member regardless of role. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:117 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:82 msgid "Filter everyone" msgstr "篩選所有人" +#. Activity log value for the explicit content filter setting that filters messages from members who have no roles. #. Explicit content filter option in the community moderation settings tab. Filters messages from members who have no roles assigned. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:107 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:77 msgid "Filter members without roles" msgstr "篩選沒有身分組的成員" @@ -15890,6 +16909,11 @@ msgstr "已授予 {0} 並撤銷 {1}。" msgid "Granted {0}." msgstr "已授予 {0}。" +#. Activity log detail line under a created or edited role, listing the permissions the role now gives its members. The actor in the summary granted them to the role. Do not write it as someone receiving them. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:60 +msgid "Granted {permissions}." +msgstr "已授予 {permissions}。" + #. Permission description in the role/permission editor for the Administrator permission. Warns that this grants every permission and overrides per-channel restrictions. Keep the warning tone explicit. #: src/features/permissions/utils/PermissionLabelDescriptors.ts:13 msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." @@ -16332,6 +17356,16 @@ msgstr "哈囉,{username}!希望您玩得愉快。" msgid "Hey, {username}, welcome aboard!" msgstr "哈囉,{username},歡迎加入!" +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned on, so the system channel no longer announces new members. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:141 +msgid "Hid join messages in the system channel." +msgstr "已在系統頻道中隱藏加入訊息。" + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned on, so the crown icon no longer marks the owner in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:186 +msgid "Hid the community owner crown." +msgstr "隱藏了社群擁有者皇冠。" + #. Short label in the interface tab. Keep it concise. #: src/features/user/components/modals/tabs/appearance_tab/InterfaceTab.tsx:38 msgid "Hidden" @@ -16504,8 +17538,10 @@ msgstr "要隱藏自己的相機嗎?" msgid "Hide your own screen share?" msgstr "要隱藏自己的螢幕分享嗎?" +#. Activity log value naming the high member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:74 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:65 msgid "High" msgstr "高" @@ -17688,7 +18724,7 @@ msgstr "邀請" #. Audit log target-type filter label. Filters entries that target an invite link. #. Join source label on the community members page. Shown when the member joined via an invite link. -#: src/features/app/config/AuditLogConstants.ts:180 +#: src/features/app/config/AuditLogConstants.ts:195 #: src/features/channel/components/guild_members_page/MemberTableRow.tsx:43 msgctxt "invite-noun" msgid "Invite" @@ -17714,12 +18750,12 @@ msgid "Invite code is {0}." msgstr "邀請碼是 {0}。" #. Audit log entry label. A new invite link was created. -#: src/features/app/config/AuditLogConstants.ts:84 +#: src/features/app/config/AuditLogConstants.ts:99 msgid "Invite created" msgstr "邀請已建立" #. Audit log entry label. An invite link was revoked or deleted. -#: src/features/app/config/AuditLogConstants.ts:92 +#: src/features/app/config/AuditLogConstants.ts:107 msgid "Invite deleted" msgstr "邀請已刪除" @@ -17850,7 +18886,7 @@ msgid "Invite unavailable" msgstr "邀請無法使用" #. Audit log entry label. An existing invite link was edited. -#: src/features/app/config/AuditLogConstants.ts:88 +#: src/features/app/config/AuditLogConstants.ts:103 msgid "Invite updated" msgstr "邀請已更新" @@ -18649,6 +19685,8 @@ msgid "Left {keyName}" msgstr "左 {keyName}" #. Audit log value for invite splash alignment: left image placement. +#. Audit log value for invite splash alignment: left image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:44 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:70 msgid "Left aligned" msgstr "靠左對齊" @@ -18745,6 +19783,11 @@ msgstr "讓螢幕閱讀器在開啟的頻道中收到新訊息時,即時朗讀 msgid "Let the community self-moderate" msgstr "讓社群自行管理" +#. Activity log detail line under a change to a member, for a moderator who let the member hear the voice channels of this community again. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone back on. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:280 +msgid "Let the member hear others in this community again." +msgstr "讓該成員能再次在此社群中聽到其他人說話。" + #: src/features/theme_studio/sections/ThemeStudioSettingsSection.tsx:259 msgid "Lets custom CSS reveal transparent window regions after restarting the desktop app." msgstr "重新啟動桌面版應用程式後,讓自訂 CSS 顯示透明視窗區域。" @@ -18815,6 +19858,16 @@ msgstr "已按讚。" msgid "Likes: <0>{countLabel}" msgstr "按讚:<0>{countLabel}" +#. Activity log detail line under an edited role whose Allow mentions for this role setting was turned off. Members with the permission to mention @everyone, @here and any role can still mention this role. Other members can no longer mention it. Do not write it as if nobody can mention the role, and do not use a double negative. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a statement of the current state. Use the same word for role and for mention as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:105 +msgid "Limited mentions of this role to members with permission to mention any role." +msgstr "僅允許擁有提及任何身分組權限的成員提及此身分組。" + +#. Activity log detail row under a created or updated voice channel that now has a maximum number of people who can join it at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {count} is an ICU plural with that maximum. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:91 +msgid "Limited the channel to {count, plural, one {# user} other {# users}}." +msgstr "限制頻道最多只能有 {count, plural, one {# 位使用者} other {# 位使用者}} 加入。" + #. Label for the has:link filter option in the mobile channel search sheet. #: src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsx:116 msgid "link" @@ -19176,8 +20229,10 @@ msgctxt "us-state" msgid "Louisiana" msgstr "路易斯安那州" +#. Activity log value naming the low member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:56 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:57 msgid "Low" msgstr "低" @@ -19204,6 +20259,11 @@ msgstr "macOS 預設值" msgid "macOS permissions" msgstr "macOS 權限" +#. Activity log detail row under an updated channel whose Mature content override setting was set to Inherit. The channel no longer has a choice of its own and takes the setting from its category, or from the community when the channel has no category. Mature content means content for adults only. Keep the channel as the thing that changed and do not say the channel was created. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:225 +msgid "Made the channel inherit its mature content setting." +msgstr "讓頻道繼承其成人內容設定。" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/AccountSecurityIndex.ts:18 @@ -19501,6 +20561,16 @@ msgstr "將表情符號標示為動態。" msgid "Marked emoji as static." msgstr "將表情符號標示為靜態。" +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to On. The channel is now treated as mature whatever its category or the community is set to. Mature content means content for adults only. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:61 +msgid "Marked the channel as containing mature content." +msgstr "將頻道標記為包含成人內容。" + +#. Activity log detail row under a created or updated channel whose Mature content override setting was set to Off. The channel is not treated as mature, even when its category or the community is. Mature content means content for adults only. Keep the negation. This row is the opposite of "Marked the channel as containing mature content." It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:66 +msgid "Marked the channel as not containing mature content." +msgstr "將頻道標記為不包含成人內容。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:600 msgid "Marked the member as permanent." msgstr "將成員標示為永久成員。" @@ -19835,9 +20905,11 @@ msgctxt "keyboard-key-name" msgid "Media stop" msgstr "停止播放" +#. Activity log value naming the medium member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #. Short label in the selections tab. Keep it concise. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:65 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:61 #: src/features/user/components/modals/tabs/component_gallery_tab/SelectionsTab.tsx:49 msgid "Medium" msgstr "中等" @@ -19847,7 +20919,7 @@ msgid "Medium size (default)" msgstr "中等大小(預設)" #. Audit log target-type filter label. Filters entries that target a community member. -#: src/features/app/config/AuditLogConstants.ts:156 +#: src/features/app/config/AuditLogConstants.ts:171 msgid "Member" msgstr "成員" @@ -19857,17 +20929,17 @@ msgid "Member actions for {displayName}" msgstr "{displayName} 的成員動作" #. Audit log entry label. A member was banned from the community. -#: src/features/app/config/AuditLogConstants.ts:44 +#: src/features/app/config/AuditLogConstants.ts:59 msgid "Member banned" msgstr "成員已遭停權" #. Audit log entry label. A member was disconnected from a voice channel by a moderator. -#: src/features/app/config/AuditLogConstants.ts:64 +#: src/features/app/config/AuditLogConstants.ts:79 msgid "Member disconnected" msgstr "成員已遭中斷連線" #. Audit log entry label. A member was kicked (removed) from the community by a moderator. -#: src/features/app/config/AuditLogConstants.ts:36 +#: src/features/app/config/AuditLogConstants.ts:51 msgid "Member kicked" msgstr "成員已遭踢出" @@ -19897,7 +20969,7 @@ msgid "Member lists are temporarily unavailable in this community" msgstr "此社群的成員列表暫時無法使用" #. Audit log entry label. A member was moved between voice channels by a moderator. -#: src/features/app/config/AuditLogConstants.ts:60 +#: src/features/app/config/AuditLogConstants.ts:75 msgid "Member moved" msgstr "成員已移動" @@ -19907,7 +20979,7 @@ msgid "Member not found" msgstr "找不到成員" #. Audit log entry label. The roles assigned to a member were changed. -#: src/features/app/config/AuditLogConstants.ts:56 +#: src/features/app/config/AuditLogConstants.ts:71 msgid "Member roles updated" msgstr "成員身分組已更新" @@ -19917,12 +20989,12 @@ msgid "Member since" msgstr "加入時間" #. Audit log entry label. A previously banned member was unbanned. -#: src/features/app/config/AuditLogConstants.ts:48 +#: src/features/app/config/AuditLogConstants.ts:63 msgid "Member unbanned" msgstr "成員已解除停權" #. Audit log entry label. A member profile was edited (nickname, etc). -#: src/features/app/config/AuditLogConstants.ts:52 +#: src/features/app/config/AuditLogConstants.ts:67 msgid "Member updated" msgstr "成員已更新" @@ -19961,7 +21033,7 @@ msgid "Members are removed when offline unless given a role." msgstr "除非獲得身分組,否則成員離線時就會被移除。" #. Audit log entry label. Inactive members were bulk-removed via the prune tool. -#: src/features/app/config/AuditLogConstants.ts:40 +#: src/features/app/config/AuditLogConstants.ts:55 msgid "Members pruned" msgstr "已清除成員" @@ -19990,7 +21062,7 @@ msgid "Members without the {readMessageHistoryPermissionLabel} permission can vi msgstr "沒有「{readMessageHistoryPermissionLabel}」權限的成員,可以查看此日期之後傳送的訊息。" #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:88 +#: src/features/app/components/layout/ChannelListContent.tsx:91 msgid "Members, selected" msgstr "已選取成員" @@ -20077,8 +21149,10 @@ msgstr "提及您的訊息會在這裡顯示 {recentMentionsRetentionDays} 天 msgid "Mentions of you show up here for {retentionDays} days." msgstr "提及您的訊息會在這裡顯示 {retentionDays} 天。" +#. Activity log value for the default notification setting of a community where members are notified only when mentioned. #. Short label in the default notifications section. Keep it concise. #: src/features/guild/components/modals/guild_tabs/guild_overview_tab/sections/DefaultNotificationsSection.tsx:24 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:91 msgid "Mentions only" msgstr "只接收提及通知" @@ -20104,7 +21178,7 @@ msgstr "訊息" #. Audit log target-type filter label. Filters entries that target an individual message. #. Short label in the inputs tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:189 +#: src/features/app/config/AuditLogConstants.ts:204 #: src/features/user/components/modals/tabs/component_gallery_tab/ComponentGalleryTabInputsTab.tsx:86 msgid "Message" msgstr "訊息" @@ -20194,7 +21268,7 @@ msgid "Message debug" msgstr "訊息偵錯" #. Audit log entry label. A single message was deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:132 +#: src/features/app/config/AuditLogConstants.ts:147 msgid "Message deleted" msgstr "訊息已刪除" @@ -20297,7 +21371,7 @@ msgid "Message list for {channelName}" msgstr "{channelName} 的訊息列表" #. Audit log entry label. A message was pinned in a channel. -#: src/features/app/config/AuditLogConstants.ts:140 +#: src/features/app/config/AuditLogConstants.ts:155 msgid "Message pinned" msgstr "訊息已釘選" @@ -20356,7 +21430,7 @@ msgid "Message time" msgstr "訊息時間" #. Audit log entry label. A message was unpinned from a channel. -#: src/features/app/config/AuditLogConstants.ts:144 +#: src/features/app/config/AuditLogConstants.ts:159 msgid "Message unpinned" msgstr "訊息已解除釘選" @@ -20395,7 +21469,7 @@ msgid "Messages & media" msgstr "訊息與媒體" #. Audit log entry label. Multiple messages were bulk-deleted by a moderator. -#: src/features/app/config/AuditLogConstants.ts:136 +#: src/features/app/config/AuditLogConstants.ts:151 msgid "Messages deleted" msgstr "訊息已刪除" @@ -20694,7 +21768,7 @@ msgid "Moderation" msgstr "管理" #. Empty-state body in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:122 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:132 msgid "Moderation actions and community changes will appear here." msgstr "管理動作與社群變更將顯示在這裡。" @@ -20915,16 +21989,51 @@ msgstr "移至" msgid "Move to…" msgstr "移至…" +#. Activity log detail under a changed webhook that was moved to a different channel. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldChannel} is the channel the webhook posted in before the move and {newChannel} is the channel it posts in after the move, both shown as channel chips. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:120 +msgid "Moved from {oldChannel} to {newChannel}." +msgstr "從 {oldChannel} 移至 {newChannel}。" + +#. Activity log detail row under an updated channel that was moved from one category to another. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldCategory} is the category it left and {newCategory} the category it joined, both shown as channel chips with their names. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:200 +msgid "Moved the channel from the category {oldCategory} to the category {newCategory}." +msgstr "將頻道從類別 {oldCategory} 移至類別 {newCategory}。" + +#. Activity log detail row under an updated channel that was placed inside a category and was not in any category before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it joined, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:190 +msgid "Moved the channel into the category {category}." +msgstr "已將頻道移至類別 {category}。" + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:425 msgid "Moved the channel to category {0}." msgstr "已將頻道移至「{0}」類別。" +#. Activity log detail line under an edited role whose group of members was moved lower in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:165 +msgid "Moved the role down in the member list." +msgstr "將身分組在成員列表中向下移動。" + +#. Activity log detail line under an edited role that was moved lower in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:145 +msgid "Moved the role down in the role list." +msgstr "將身分組在身分組列表中向下移動。" + #. placeholder {0}: renderInline(value, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:648 msgid "Moved the role to position {0}." msgstr "已將身分組移至第 {0} 個位置。" +#. Activity log detail line under an edited role whose group of members was moved higher in the member list. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:160 +msgid "Moved the role up in the member list." +msgstr "將身分組在成員列表中向上移動。" + +#. Activity log detail line under an edited role that was moved higher in the community role list, where higher roles rank above lower ones. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:140 +msgid "Moved the role up in the role list." +msgstr "將身分組在身分組列表中向上移動。" + #. placeholder {0}: renderInline(change.newValue, i18n, guildId) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:752 msgid "Moved to channel {0}." @@ -21616,7 +22725,7 @@ msgstr "新訊息" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the app layout channel list content. -#: src/features/app/components/layout/ChannelListContent.tsx:92 +#: src/features/app/components/layout/ChannelListContent.tsx:95 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:147 msgid "New messages" msgstr "新訊息" @@ -22034,7 +23143,7 @@ msgid "No local files referenced" msgstr "沒有參照任何本機檔案" #. Empty-state title in the activity log tab when there are no log entries to show. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:118 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:128 msgid "No logs yet" msgstr "尚無紀錄" @@ -22136,7 +23245,7 @@ msgid "No reason provided" msgstr "未提供原因" #. Fallback text in an expanded activity log entry when the moderator did not supply a reason. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:110 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:716 msgid "No reason was provided." msgstr "未提供原因。" @@ -22373,6 +23482,7 @@ msgctxt "keyboard-key-name" msgid "Non-convert" msgstr "無轉換" +#. Activity log value naming the lowest member verification level of a community, where no verification is required. #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #. Library picker entry meaning no sound is selected for this scope. #. Member verification level option in the community moderation settings tab. Short standalone label for the lowest level (no verification). @@ -22380,6 +23490,7 @@ msgstr "無轉換" #. Summary row value on the confirm step when no items in the category were selected. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperToolsShared.ts:41 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:47 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:52 #: src/features/user/components/modals/tabs/accessibility_tab/VisualTab.tsx:37 #: src/features/user/components/modals/tabs/components/EntranceSoundSection.tsx:146 #: src/features/user/components/modals/tabs/privacy_safety_tab/data_request_modal/DataRequestModal.tsx:220 @@ -22654,6 +23765,7 @@ msgstr "OAuth2 URL 產生器" msgid "Objects" msgstr "物品" +#. Activity log value meaning the explicit content filter of a community is turned off. #. Channel overview settings tab label, control, or validation message (name, topic, slowmode, voice region, mature content gate). #. Explicit content filter option in the community moderation settings tab. Short standalone label meaning disabled. #. Mature content option in the community moderation settings tab. @@ -22665,6 +23777,7 @@ msgstr "物品" #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/SlowmodeControl.tsx:24 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:97 #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:139 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:73 #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:128 msgid "Off" msgstr "關閉" @@ -23523,6 +24636,21 @@ msgstr "載入原始訊息失敗" msgid "Original message was deleted" msgstr "原始訊息已刪除" +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it. {user} is the member who made the original ban, shown as a clickable user chip. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:35 +msgid "Originally banned by {user} on {date}." +msgstr "原由 {user} 於 {date} 停權。" + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when someone other than the person who lifted the ban had made it and the date of the ban was not recorded. {user} is the member who made the original ban, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:45 +msgid "Originally banned by {user}." +msgstr "原由 {user} 停權。" + +#. Activity log detail line under a lifted ban, describing the ban that was lifted. A ban is the community ban, not the feature that blocks a user. Shown when the person who lifted the ban had also made it, or when it is not known who made it. {date} is when the original ban was made, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:40 +msgid "Originally banned on {date}." +msgstr "原始停權日期為 {date}。" + #. Catch-all Discovery category dropdown option in the community Discovery settings tab. #. Collapsible group heading in the Theme Studio tokens list, for tokens that fit no other group. #. Report category label for a reason that does not match any predefined category. @@ -23916,6 +25044,11 @@ msgstr "因減少動態效果而暫停。開啟即可繼續播放動態表情符 msgid "Paused by reduced motion. Turn on to keep GIFs playing." msgstr "因減少動態效果而暫停。開啟即可繼續播放 GIF。" +#. Activity log detail line under a community settings update, shown when invites were paused. Pausing invites disables every invite link of the community, so nobody new can join through one until invites are enabled again. Existing members are not affected. Use the same verb as the Pause invites button. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a status label. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:211 +msgid "Paused invites." +msgstr "已暫停邀請。" + #. Plutonium subscription payment method picker description for Brazil. Explains Pix recurring vs falling back to a card. #: src/features/app/components/dialogs/components/plutonium/hooks/useCheckoutActions.tsx:37 msgid "Pay with {pixPaymentMethod} Automático to authorize recurring charges directly from your Brazilian bank. Or choose \"Use card\" to enter a credit card on {paymentProviderName}'s next screen." @@ -24064,6 +25197,21 @@ msgstr "永久刪除您的帳號和所有相關資料。此動作無法復原。 msgid "Permanently remove messages you have sent across DMs, group DMs, and communities. The work runs in the background, and you will get a DM when it finishes." msgstr "永久移除您在私訊、群組私訊和社群中傳送的訊息。此作業會在背景執行,完成後您會收到一則私訊通知。" +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a new permission override was added. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being granted. Word it as a short label like "Channel created", and keep it parallel with "Permission override updated" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:24 +msgid "Permission override added" +msgstr "已新增權限覆寫" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where a permission override was removed from a channel or category. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being taken away. Word it as a short label like "Channel deleted", and keep it parallel with "Permission override added" and "Permission override updated". +#: src/features/app/config/AuditLogConstants.ts:34 +msgid "Permission override removed" +msgstr "已移除權限覆寫" + +#. Option in the activity log "Filter by action" dropdown. It shows only entries where an existing permission override was changed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. It can be for a role, a member or @everyone. Use the same word for override as the channel permissions settings, such as Add override. Keep the word override so it does not read as a permission being changed. Word it as a short label like "Channel updated", and keep it parallel with "Permission override added" and "Permission override removed". +#: src/features/app/config/AuditLogConstants.ts:29 +msgid "Permission override updated" +msgstr "權限覆寫已更新" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/guild/components/modals/guild_tabs/guild_roles_tab/RoleEditor.tsx:249 #: src/features/user/components/settings_utils/search_index/AuthorizedAppsIndex.ts:18 @@ -25559,7 +26707,8 @@ msgstr "準備好升級了嗎?" msgid "Real-time" msgstr "即時" -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:686 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:617 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:1286 #: src/features/moderation/components/modals/BanDetailsModal.tsx:74 msgid "Reason" msgstr "原因" @@ -26291,26 +27440,166 @@ msgstr "已移除身分組「{oldLabel}」。" msgid "Removed roles." msgstr "已移除身分組。" +#. Activity log detail line under a community settings update, shown when the community stopped having an AFK channel, the voice channel idle members are moved to. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:166 +msgid "Removed the AFK channel." +msgstr "已移除 AFK 頻道。" + +#. Activity log detail under a changed webhook whose avatar image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:135 +msgid "Removed the avatar." +msgstr "已移除頭像。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:423 msgid "Removed the channel from its category." msgstr "已將頻道從其類別中移除。" +#. Activity log detail row under an updated channel that was taken out of its category. The channel was not deleted and was not moved to another category. It now sits outside any category. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {category} is the category it left, shown as a channel chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:195 +msgid "Removed the channel from the category {category}." +msgstr "已將頻道從類別 {category} 中移除。" + +#. Activity log detail line under a community settings update, shown when the chat embed background, the image shown behind invite embeds of the community in chat, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:121 +msgid "Removed the chat embed background." +msgstr "已移除聊天嵌入背景。" + +#. Activity log detail line under a community settings update, shown when the community banner image was removed. This is the banner of the community itself, not the banner on the community profile of a member. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:76 +msgid "Removed the community banner." +msgstr "已移除社群橫幅。" + +#. Activity log detail line under a community settings update, shown when the community icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:61 +msgid "Removed the community icon." +msgstr "已移除社群圖示。" + +#. Activity log detail row under an updated channel whose custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:245 +msgid "Removed the content warning text." +msgstr "移除了內容警告文字。" + +#. Activity log detail row under an updated channel that no longer shows a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:230 +msgid "Removed the content warning." +msgstr "移除了內容警告。" + +#. Activity log detail line under an edited role whose uploaded icon image was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:135 +msgid "Removed the custom role icon." +msgstr "已移除自訂身分組圖示。" + +#. Activity log detail line under a community settings update, shown when the custom content warning text was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:281 +msgid "Removed the custom warning text." +msgstr "已移除自訂警告文字。" + +#. Activity log detail line under an edited sticker, for a sticker description that was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the removed description itself, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:85 +msgid "Removed the description {text}." +msgstr "已移除說明 {text}。" + +#. Activity log detail line under a community settings update, shown when the invite background, the image behind the invite page of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:101 +msgid "Removed the invite background." +msgstr "已移除邀請背景。" + +#. Activity log detail row under an updated link channel whose web address was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:210 +msgid "Removed the link." +msgstr "移除了連結。" + +#. Activity log detail line under a change to a member, for an accent color removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:347 +msgid "Removed the member's community profile accent color." +msgstr "移除成員的社群個人檔案強調色。" + +#. Activity log detail line under a change to a member, for an avatar removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The avatar belongs to the member and not to the community, so keep the member as the owner. It is not the community icon. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:295 +msgid "Removed the member's community profile avatar." +msgstr "已移除成員的社群個人檔案頭像。" + +#. Activity log detail line under a change to a member, for a banner image removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The banner belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the banner of the community itself, which is a different setting. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:311 +msgctxt "audit-log-member-profile" +msgid "Removed the member's community profile banner." +msgstr "移除成員的社群個人檔案橫幅。" + +#. Activity log detail line under a change to a member, for a bio removed from the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:327 +msgid "Removed the member's community profile bio." +msgstr "已移除成員的社群個人檔案簡介。" + +#. Activity log detail line under a change to a member, for pronouns removed from the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:337 +msgid "Removed the member's community profile pronouns." +msgstr "已移除成員的社群個人檔案代名詞。" + +#. Activity log detail line under a community settings update, shown when the message history threshold, the date before which new members cannot see messages, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:206 +msgid "Removed the message history threshold." +msgstr "已移除訊息紀錄門檻。" + +#. Activity log detail line under a change to a member, for a removed nickname. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {nick} is the nickname that was removed. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:235 +msgid "Removed the nickname {nick}." +msgstr "已移除暱稱 {nick}。" + +#. Activity log detail row under an updated channel permission override, listing permissions the override no longer allows or denies. Those permissions follow the usual permissions of the role or member again. The override itself was not removed. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:373 +msgid "Removed the override for {permissions}." +msgstr "已移除 {permissions} 的覆寫設定。" + +#. Activity log detail line under a change to the roles of a member, for one role the member lost. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:245 +msgid "Removed the role {role}." +msgstr "移除了 {role} 這個身分組。" + +#. Activity log detail line under an edited role that no longer has a name color. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:75 +msgid "Removed the role color." +msgstr "已移除身分組顏色。" + +#. Activity log detail line under an edited role whose standard emoji icon was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:120 +msgid "Removed the role icon." +msgstr "已移除身分組圖示。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:383 msgid "Removed the rules channel." msgstr "已移除規則頻道。" +#. Activity log detail line under a community settings update, shown when the community stopped having a system channel, where the app posts messages such as member joins. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:367 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:136 msgid "Removed the system channel." msgstr "已移除系統頻道。" +#. Activity log detail line under a change to a member, for a timeout that was ended early. A timeout is the moderation action that stops a member from sending messages, reacting and joining voice until it ends. It is not a ban, a kick or a community mute. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:260 +msgid "Removed the timeout." +msgstr "已移除禁言。" + +#. Activity log detail row under an updated channel whose topic was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {text} is the topic that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:215 +msgid "Removed the topic {text}." +msgstr "已移除主題 {text}。" + #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:677 msgid "Removed the Unicode emoji." msgstr "已移除 Unicode 表情符號。" +#. Activity log detail row under an updated voice channel that no longer limits how many people can join at once. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:451 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:270 msgid "Removed the user limit." msgstr "已移除使用者上限。" +#. Activity log detail line under a community settings update, shown when the vanity URL, the custom invite link of the community, was removed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {code} is the vanity URL code that was removed, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:311 +msgid "Removed the vanity URL {code}." +msgstr "已移除自訂網址 {code}。" + #: src/features/moderation/components/modals/RemoveTimeoutModal.tsx:35 msgid "Removed timeout from {targetUserTag}" msgstr "已解除 {targetUserTag} 的禁言" @@ -26381,6 +27670,11 @@ msgstr "已將貼圖重新命名為「{0}」。" msgid "Renamed the channel to {0}." msgstr "已將頻道名稱更改為「{0}」。" +#. Activity log detail line under a community settings update, shown when the community name changed. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {oldName} is the previous community name and {newName} is the new community name, both shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:46 +msgid "Renamed the community from {oldName} to {newName}." +msgstr "將社群名稱從 {oldName} 改為 {newName}。" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:229 msgid "Renamed the community to {0}." @@ -26616,6 +27910,11 @@ msgstr "管理員必須啟用雙重驗證,才能執行停權、踢出、禁言 msgid "Required" msgstr "必要" +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Required is the past tense verb here. It is not an adjective or a notice that the reader needs 2FA. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:286 +msgid "Required 2FA for moderation actions." +msgstr "已要求執行管理動作前必須啟用 2FA。" + #. Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse. #: src/features/channel/components/channel_header_components/developer_tools/DeveloperOptionLabels.ts:232 msgid "Required action default tab" @@ -26863,6 +28162,11 @@ msgstr "重設間距" msgid "Reset the connection limit." msgstr "已重設連線限制。" +#. Activity log detail line under an edited role that lost its own place in the order of role groups in the member list, so that order follows the role list again. Reset means the position went back to the default. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Reset is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:155 +msgid "Reset the member list position for the role." +msgstr "重設身分組在成員列表中的位置。" + #. Developer premium-state scenario option that clears overrides. #: src/features/devtools/components/PremiumScenarioOptions.ts:76 msgid "Reset to actual values" @@ -27142,6 +28446,11 @@ msgstr "已將此身分組的提及限制為具有權限的成員。" msgid "Resubscribe" msgstr "重新訂閱" +#. Activity log detail line under a community settings update, shown when invites were resumed after they were paused. Resuming invites enables the invite links of the community again, so people can join through them. It is the reverse of pausing invites and matches the Enable invites button. It does not mean invites were repeated or sent again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:216 +msgid "Resumed invites." +msgstr "已恢復邀請。" + #: src/features/auth/components/pages/ForgotPasswordPage.tsx:62 msgid "Return to sign-in" msgstr "返回登入" @@ -27330,6 +28639,11 @@ msgstr "要撤銷此邀請嗎?此動作無法復原。" msgid "Revoked {0}." msgstr "已撤銷 {0}。" +#. Activity log detail line under an edited role, listing the permissions the role no longer gives its members. The actor in the summary took them away from the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:65 +msgid "Revoked {permissions}." +msgstr "撤銷了 {permissions}。" + #. placeholder {0}: NicknameUtils.getDisplayName(ban.user) #: src/features/guild/components/modals/guild_tabs/GuildBansTab.tsx:118 msgid "Revoked ban for {0}" @@ -27358,6 +28672,8 @@ msgid "Right {keyName}" msgstr "右 {keyName}" #. Audit log value for invite splash alignment: right image placement. +#. Audit log value for invite splash alignment: right image placement. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:48 #: src/features/guild/utils/guild_tabs/GuildAuditLogTabUtils.ts:74 msgid "Right aligned" msgstr "靠右對齊" @@ -27408,7 +28724,7 @@ msgstr "鈴聲" #. Audit log target-type filter label. Filters entries that target a role. #. Slash-command argument type name, spoken by screen readers for an argument that takes a role. -#: src/features/app/config/AuditLogConstants.ts:164 +#: src/features/app/config/AuditLogConstants.ts:179 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:35 msgid "Role" msgstr "身分組" @@ -27419,7 +28735,7 @@ msgid "Role color" msgstr "身分組顏色" #. Audit log entry label. A new role was created in the community. -#: src/features/app/config/AuditLogConstants.ts:72 +#: src/features/app/config/AuditLogConstants.ts:87 msgid "Role created" msgstr "已建立身分組" @@ -27429,7 +28745,7 @@ msgid "Role created successfully" msgstr "身分組建立成功" #. Audit log entry label. A role was deleted from the community. -#: src/features/app/config/AuditLogConstants.ts:80 +#: src/features/app/config/AuditLogConstants.ts:95 msgid "Role deleted" msgstr "身分組已刪除" @@ -27449,7 +28765,7 @@ msgid "Role name is required" msgstr "請輸入身分組名稱" #. Audit log entry label. An existing role was edited. -#: src/features/app/config/AuditLogConstants.ts:76 +#: src/features/app/config/AuditLogConstants.ts:91 msgid "Role updated" msgstr "身分組已更新" @@ -28930,11 +30246,21 @@ msgstr "工作階段" msgid "Set {fieldNode} to {0}." msgstr "將 {fieldNode} 設為 {0}。" +#. Activity log detail line under a created or edited role that got an uploaded image as the icon shown next to the role name, when it had no uploaded icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:125 +msgid "Set a custom role icon." +msgstr "設定自訂身分組圖示。" + #: src/features/app/components/floating/UserAreaPopout.tsx:601 #: src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsx:314 msgid "Set a custom status" msgstr "設定自訂狀態" +#. Activity log detail line under an edited role that was given its own place in the order of role groups in the member list. Until then that order followed the role list. The member list position is where the group of members with this role appears in the member list. It is not a position of the member list itself. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:150 +msgid "Set a member list position for the role." +msgstr "為身分組設定成員列表中的位置。" + #. placeholder {0}: renderInline(color, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:586 msgid "Set accent color to {0} <0/>." @@ -29036,6 +30362,11 @@ msgstr "將身分組顏色設為 <0>{hex} <1/>。" msgid "Set slowmode to {0} {seconds, plural, one {second} other {seconds}}." msgstr "將慢速模式設為 {0} {seconds, plural, one {秒} other {秒}}。" +#. Activity log detail row under a created or updated channel that now has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {duration} is the wait, shown as a formatted duration such as "30 seconds" or "1 hour". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:81 +msgid "Set slowmode to {duration}." +msgstr "將慢速模式設定為 {duration}。" + #. Short label in the status change bottom sheet. Keep it concise. #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:32 msgid "Set status" @@ -29046,11 +30377,21 @@ msgstr "設定狀態" msgid "Set the AFK channel to {0}." msgstr "將閒置頻道設為 {0}。" +#. Activity log detail line under a community settings update, shown when the community got an AFK channel, the voice channel idle members are moved to, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new AFK channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:156 +msgid "Set the AFK channel to {channel}." +msgstr "將 AFK 頻道設為 {channel}。" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:242 msgid "Set the AFK timeout to {0} seconds." msgstr "將閒置逾時設為 {0} 秒。" +#. Activity log detail row under a created voice channel whose audio bitrate differs from the default. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {kbps} is a plain number of kilobits per second, and kbps is the unit abbreviation. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:86 +msgid "Set the audio quality to {kbps} kbps." +msgstr "將音訊品質設為 {kbps} kbps。" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:461 msgid "Set the bitrate to {0}." @@ -29076,16 +30417,71 @@ msgstr "將頻道類型設為「{0}」。" msgid "Set the connection limit to {0}." msgstr "將連線限制設為 {0}。" +#. Activity log detail row under an updated channel whose content warning got custom text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:235 +msgid "Set the content warning text to {text}." +msgstr "將內容警告文字設為 {text}。" + +#. Activity log detail line under a community settings update, shown when the community got custom content warning text where it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new warning text, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:271 +msgid "Set the custom warning text to {text}." +msgstr "將自訂警告文字設為 {text}。" + +#. Activity log detail line under an added or edited sticker, for a sticker description that was set where there was none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new description, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:55 +msgid "Set the description to {text}." +msgstr "將說明設為 {text}。" + #. placeholder {0}: renderSplashAlignmentValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:254 msgid "Set the invite splash alignment to {0}." msgstr "將邀請畫面對齊方式設為 {0}。" +#. Activity log detail row under a created or updated link channel, saying which web address the channel opens. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {url} is the web address, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:51 +msgid "Set the link to {url}." +msgstr "將連結設為 {url}。" + +#. Activity log detail line under a change to a member, for an accent color added or changed on the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The accent color belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as the color of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the new color as a hex code such as #FF0000, shown next to a dot in that color. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:342 +msgid "Set the member's community profile accent color to {color}." +msgstr "將成員的社群個人檔案強調色設為 {color}。" + +#. Activity log detail line under a change to a member, for a bio added to the community profile of the member. A community profile is the profile a member uses only in this community, in place of their global profile. The bio belongs to the member and not to the community, so keep the member as the owner and never let the phrase read as a bio of the community itself. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new bio, shown as boxed text and shortened when long. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:317 +msgid "Set the member's community profile bio to {text}." +msgstr "將成員的社群個人檔案簡介設為 {text}。" + +#. Activity log detail line under a change to a member, for pronouns added or changed on the community profile of the member. Pronouns are the words the member wants others to use for them, such as they/them. A community profile is the profile a member uses only in this community, in place of their global profile. The pronouns belong to the member and not to the community, so keep the member as the owner. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the new pronouns as the member wrote them, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:332 +msgid "Set the member's community profile pronouns to {text}." +msgstr "將成員的社群個人檔案代名詞設為 {text}。" + +#. Activity log detail line under a community settings update, shown when the community got a message history threshold, the date before which new members cannot see messages, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {date} is the threshold, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:196 +msgid "Set the message history threshold to {date}." +msgstr "將訊息歷史記錄的門檻設定為 {date}。" + +#. Activity log detail line under a change to a member, for a nickname given to a member who had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {nick} is the new nickname. The app shows it in bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:225 +msgid "Set the nickname to {nick}." +msgstr "將暱稱設為 {nick}。" + #. Setup wizard branding step body. #: src/features/app/components/setup/SetupWizardSteps.tsx:85 msgid "Set the public product name, theme color, and image assets that clients display." msgstr "設定用戶端顯示的公開產品名稱、主題顏色和圖片資源。" +#. Activity log detail line under a created or edited role that got a name color when it had none before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {color} is the color as a hex code such as #E67E22, shown in bold next to a dot in that color. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:70 +msgid "Set the role color to {color}." +msgstr "將身分組顏色設為 {color}。" + +#. Activity log detail line under a created or edited role that got a standard emoji as the icon shown next to the role name, when it had no emoji icon before. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {emoji} is that emoji character, shown in bold. Do not add ** or around it. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:110 +msgid "Set the role icon to {emoji}." +msgstr "將身分組圖示設為 {emoji}。" + #. placeholder {0}: renderRtcRegionValue(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:464 msgid "Set the RTC region to {0}." @@ -29101,6 +30497,16 @@ msgstr "將規則頻道設為 {0}。" msgid "Set the system channel to {0}." msgstr "將系統頻道設為 {0}。" +#. Activity log detail line under a community settings update, shown when the community got a system channel, where the app posts messages such as member joins, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {channel} is the new system channel, shown as a channel chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:126 +msgid "Set the system channel to {channel}." +msgstr "將系統頻道設為 {channel}。" + +#. Activity log detail row under a created or updated channel, giving its new topic. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {text} is the topic, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:56 +msgid "Set the topic to {text}." +msgstr "將主題設為 {text}。" + #. placeholder {0}: renderInline(change.newValue, i18n) #: src/features/guild/components/modals/guild_tabs/GuildAuditLogTabRenderers.tsx:678 msgid "Set the Unicode emoji to {0}." @@ -29116,6 +30522,21 @@ msgstr "將使用者上限設為 {0}。" msgid "Set the vanity URL to {0}." msgstr "將自訂網址設為 {0}。" +#. Activity log detail line under a community settings update, shown when the community got a vanity URL, its custom invite link, when it had none. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {code} is the new vanity URL code, shown as boxed text. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:301 +msgid "Set the vanity URL to {code}." +msgstr "已將自訂網址設為 {code}。" + +#. Activity log detail row under a created or updated voice channel that now uses a fixed voice server region. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. {region} is the region identifier, shown in bold. The app adds the bold, so do not add ** or . +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:101 +msgid "Set the voice region to {region}." +msgstr "已將語音區域設為 {region}。" + +#. Activity log detail row under an updated voice channel that no longer uses a fixed voice server region and now picks one automatically. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. Set is past tense here. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:280 +msgid "Set the voice region to automatic." +msgstr "將語音區域設為自動。" + #. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. #. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 @@ -29900,6 +31321,11 @@ msgstr "在此社群顯示您的全域個人檔案橫幅" msgid "Show your Visionary as a regular subscription instead" msgstr "改將您的 Visionary 顯示為一般訂閱" +#. Activity log detail line under a newly created role that was created with the Show this role separately setting turned on. Members with the role appear in their own section in the member list. This line is only used when a role is created. When an existing role is edited, the app uses "Started displaying members with this role separately." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:85 +msgid "Showed members with this role in their own section in the member list." +msgstr "在成員列表中獨立顯示擁有此身分組的成員。" + #. Subtitle under the community members page heading. displayedCount is how many rows the table currently shows; totalCount is how many members the community has. #: src/features/channel/components/guild_members_page/MembersTableToolbar.tsx:26 msgid "Showing {displayedCount, number} of {totalCount, plural, one {# total member} other {# total members}}" @@ -30541,7 +31967,7 @@ msgid "Something went wrong while issuing your refund. Contact support if this k msgstr "處理退款時發生錯誤。如果問題持續發生,請聯絡客服。" #. Generic error shown in the activity log tab when fetching log entries fails. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:90 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:104 msgid "Something went wrong while loading the activity log." msgstr "載入活動紀錄時發生錯誤。" @@ -31105,6 +32531,11 @@ msgstr "發起語音通話" msgid "Start with computer" msgstr "開機時啟動" +#. Activity log detail line under an existing role that was edited to turn on the Show this role separately setting. Members with the role now appear in their own section in the member list. Separately describes how the members are displayed, not the role. This line is only used when an existing role is edited. When a role is created with the setting on, the app uses "Showed members with this role in their own section in the member list." instead. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:90 +msgid "Started displaying members with this role separately." +msgstr "開始將擁有此身分組的成員獨立顯示。" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/settings_utils/search_index/DesktopSettingsIndex.ts:46 msgid "Startup" @@ -31196,7 +32627,7 @@ msgstr "貼圖" #. Generic label for one sticker. #. Label for the has:sticker option in the mobile content-type filter sheet. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/app/config/AuditLogConstants.ts:176 +#: src/features/app/config/AuditLogConstants.ts:191 #: src/features/i18n/utils/CommonMessageDescriptors.ts:234 #: src/features/search/components/search/HasFilterSheet.tsx:73 #: src/features/user/components/settings_utils/section_registry/ChatSettingsSections.ts:133 @@ -31238,12 +32669,12 @@ msgid "Sticker couldn't be compressed enough" msgstr "貼圖無法充分壓縮" #. Audit log entry label. A custom sticker was added to the community. -#: src/features/app/config/AuditLogConstants.ts:120 +#: src/features/app/config/AuditLogConstants.ts:135 msgid "Sticker created" msgstr "貼圖已建立" #. Audit log entry label. A custom sticker was removed from the community. -#: src/features/app/config/AuditLogConstants.ts:128 +#: src/features/app/config/AuditLogConstants.ts:143 msgid "Sticker deleted" msgstr "貼圖已刪除" @@ -31272,7 +32703,7 @@ msgid "Sticker slots full" msgstr "貼圖欄位已滿" #. Audit log entry label. A custom sticker was edited. -#: src/features/app/config/AuditLogConstants.ts:124 +#: src/features/app/config/AuditLogConstants.ts:139 msgid "Sticker updated" msgstr "貼圖已更新" @@ -31412,6 +32843,46 @@ msgstr "停止觀看直播" msgid "Stop." msgstr "停止。" +#. Activity log detail line under a community settings update, shown when the setting that allows flexible text channel names, such as capital letters and spaces, was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:181 +msgid "Stopped allowing flexible text channel names." +msgstr "已停用彈性文字頻道名稱。" + +#. Activity log detail line under a community settings update, shown when the Let others clone your emojis setting was turned off. Members of other communities can no longer clone the custom emojis of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:226 +msgid "Stopped allowing others to clone this community's emojis." +msgstr "停止允許其他人複製這個社群的表情符號。" + +#. Activity log detail line under a community settings update, shown when the Let others clone your stickers setting was turned off. Members of other communities can no longer clone the stickers of this community into their own communities. It is the reverse of the line for turning the setting on, so keep the two worded alike. Use the same word for clone as the Clone emoji and Clone sticker menu items. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:236 +msgid "Stopped allowing others to clone this community's stickers." +msgstr "停止允許其他人複製這個社群的貼圖。" + +#. Activity log detail line under an existing role that was edited to turn off the Show this role separately setting. Members with the role no longer appear in their own section in the member list. Separately describes how the members are displayed, not the role. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. It is not a settings label. Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:95 +msgid "Stopped displaying members with this role separately." +msgstr "停止獨立顯示具有此身分組的成員。" + +#. Activity log detail line under a community settings update, shown when the Hide join messages setting was turned off, so the system channel announces new members again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:146 +msgid "Stopped hiding join messages in the system channel." +msgstr "已停止在系統頻道中隱藏加入訊息。" + +#. Activity log detail line under a community settings update, shown when the Hide community owner crown setting was turned off, so the crown icon marks the owner in the member list again. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:191 +msgid "Stopped hiding the community owner crown." +msgstr "停止隱藏社群擁有者皇冠。" + +#. Activity log detail line under a community settings update, shown when the setting that requires moderators to have two-factor authentication (2FA) turned on before they can take moderation actions was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:291 +msgid "Stopped requiring 2FA for moderation actions." +msgstr "停止要求管理員採取管理動作前必須啟用 2FA。" + +#. Activity log detail line under a change to a member, for a moderator who stopped the member from hearing anyone in the voice channels of this community until it is undone. This is about what the member hears and not about the microphone of the member, so it must read clearly differently from the row where a moderator turns the microphone off. Describe the effect the way the English does. Do not name the action with a noun such as a community deafen. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:275 +msgid "Stopped the member from hearing others in this community." +msgstr "已讓該成員無法在此社群中聽到其他人說話。" + #. Description for the echo cancellation toggle in the custom voice processing settings. #: src/features/voice/components/voice_connection_status/AudioProcessingModal.tsx:59 msgid "Stops your speakers from looping back into your mic." @@ -31942,7 +33413,9 @@ msgstr "與類別同步" msgid "Syntax highlighting" msgstr "語法突顯" +#. Activity log name shown as the one who made a change when the app made it automatically and no person did. It fills the {actor} slot at the start of activity log sentences. #: src/features/channel/components/ChannelUserTag.tsx:27 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:20 msgid "System" msgstr "系統" @@ -32449,6 +33922,16 @@ msgstr "應用程式當機了。正在檢查更新,或許能解決這個問題 msgid "The app should now be signed in to your account." msgstr "應用程式現在應該已登入您的帳號。" +#. Activity log detail line under a lifted ban, for a temporary ban that had already ended on its own before it was lifted. A ban is the community ban, not the feature that blocks a user. {date} is when the ban ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:55 +msgid "The ban had already expired on {date}." +msgstr "該停權已於 {date} 到期。" + +#. Activity log detail line under a lifted ban, for a temporary ban that was lifted before it ended on its own. The ban never reached this date, so do not say that it expired. A ban is the community ban, not the feature that blocks a user. {date} is when the ban would have ended, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:50 +msgid "The ban was scheduled to expire on {date}." +msgstr "該停權原定於 {date} 到期。" + #: src/features/auth/components/pages/oauth_authorize_page/OAuthSuccessState.tsx:30 msgid "The bot has been added to <0>{destinationName}." msgstr "機器人已新增至<0>{destinationName}。" @@ -32491,6 +33974,11 @@ msgstr "桌面更新已下載完成。重新啟動 {productName} 以完成安裝 msgid "The downloaded file is saved to your computer. Install it with your normal package manager." msgstr "下載的檔案已儲存到您的電腦。請使用您慣用的套件管理員進行安裝。" +#. Activity log detail line under a deleted emoji, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the emoji, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:40 +msgid "The emoji was uploaded by {user}." +msgstr "該表情符號由 {user} 上傳。" + #: src/features/connection/components/modals/AddConnectionModal.tsx:356 msgid "The file contains the verification token we will fetch from <0>{dnsUrl}." msgstr "此檔案包含我們將從 <0>{dnsUrl} 擷取的驗證權杖。" @@ -32504,6 +33992,51 @@ msgstr "您嘗試上傳的檔案大小超過 {maxSizeFormatted} 的上限。" msgid "The following people can't be added to this group DM:" msgstr "以下使用者無法新增至這個群組私訊:" +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it. {user} is the member who created the invite, shown as a clickable user chip. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:55 +msgid "The invite was created by {user} on {date}." +msgstr "邀請是由 {user} 在 {date} 建立的。" + +#. Activity log detail under a deleted invite link, used when someone other than the member who deleted it had created it and the creation time was not recorded. {user} is the member who created the invite, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:60 +msgid "The invite was created by {user}." +msgstr "邀請是由 {user} 建立的。" + +#. Activity log detail under a deleted invite link, used when the member who deleted it had also created it or the creator was not recorded. {date} is when the invite was created, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:65 +msgid "The invite was created on {date}." +msgstr "邀請是在 {date} 建立的。" + +#. Activity log detail under a deleted invite link. It says nobody had used the invite before it was deleted. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:70 +msgid "The invite was never used." +msgstr "這個邀請連結從未使用過。" + +#. Activity log detail under a deleted invite link. It records the date the invite would have stopped working. The invite was deleted and may never have reached that date, so do not say it expired. {date} is that scheduled expiry, shown as a formatted date and time. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:80 +msgid "The invite was scheduled to expire on {date}." +msgstr "邀請原定於 {date} 到期。" + +#. Activity log detail under a created or deleted invite link. It records that the invite was made with no limit on how many times it can be used. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:25 +msgid "The invite was set to allow unlimited uses." +msgstr "邀請設定為允許無限次使用。" + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. It does not say the invite has expired. {duration} is how long the invite was set to stay valid after it was made, shown as a formatted length of time such as "7 days" or "30 minutes". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:20 +msgid "The invite was set to expire after {duration}." +msgstr "邀請設定為在 {duration} 後到期。" + +#. Activity log detail under a created or deleted invite link. It records that the Temporary membership switch was on for this invite. People who join with it are kicked when they go offline unless they get a role. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:35 +msgid "The invite was set to grant temporary membership." +msgstr "邀請設定為授予臨時成員資格。" + +#. Activity log detail under a created or deleted invite link. It records the expiry setting the invite was made with. The invite had no expiry time, so it would never stop working on its own. It has no placeholders. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:15 +msgid "The invite was set to never expire." +msgstr "邀請設定為永不過期。" + #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:506 msgid "The language most of your community speaks. Used to filter Discovery results." msgstr "社群中最常用的語言。用於篩選探索結果。" @@ -32518,6 +34051,11 @@ msgstr "此連結可能仍然有效。請稍後再試一次。" msgid "The mature content check was canceled. You can close this tab and try again from the app." msgstr "已取消成人內容檢查。您可以關閉此分頁,然後從應用程式中重試。" +#. Activity log detail line under a change to a member who had joined with temporary membership and became a regular member, which happens when a temporary member gets a role. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:352 +msgid "The member is no longer temporary." +msgstr "該成員已不再是臨時成員。" + #. Description for the member option of a moderation slash command. #: src/features/devtools/hooks/useCommands.ts:63 msgid "The member to target." @@ -32546,6 +34084,16 @@ msgstr "新價格已排定於 {effectiveDate} 生效。" msgid "The new voice channel will reuse the permissions, user limit, and bitrate from <0>{channelLabel}." msgstr "新的語音頻道將會重複使用 <0>{channelLabel} 的權限、使用者上限和位元速率。" +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly allowed before it was removed. It describes the removed override. It does not mean these permissions are allowed now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:378 +msgid "The override allowed {permissions}." +msgstr "該覆寫允許 {permissions}。" + +#. Activity log detail row under a removed channel permission override, listing the permissions it explicitly denied before it was removed. It describes the removed override. It does not mean these permissions are denied now. A permission override is a channel-level exception to the permissions of a role or member. It allows or denies chosen permissions in one channel or category only. Use the same word for override as the channel permissions settings, such as Add override. {permissions} is a list of permission names joined into one phrase, for example "View channel and Send messages". A long list ends with a count, for example "View channel, Send messages, and 3 more permissions". +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:383 +msgid "The override denied {permissions}." +msgstr "該覆寫曾拒絕 {permissions}。" + #: src/features/app/components/pages/NotFoundPage.tsx:29 msgid "The page you're looking for doesn't exist or has been moved." msgstr "您要找的頁面不存在,或可能已移動。" @@ -32565,6 +34113,11 @@ msgstr "提供的 redirect_uri 未在此應用程式中註冊。" msgid "The provided redirect_uri must use HTTP or HTTPS." msgstr "提供的 redirect_uri 必須使用 HTTP 或 HTTPS。" +#. Activity log detail line under a deleted role, listing the permissions the role gave its members before it was deleted. The role is the subject. {permissions} is a list of permission names that the app joins with commas and the word for "and" in your language. When the list is long it ends with a count of the permissions not named, such as "3 more permissions". Use the same word for role as the rest of the app. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogRoleMessages.ts:170 +msgid "The role granted {permissions}." +msgstr "該身分組曾授予 {permissions}。" + #. Body of a modal shown when a browser screen share track ends outside the app, for example from the browser sharing controls. #: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:118 msgctxt "screen-share" @@ -32579,6 +34132,21 @@ msgstr "此貼圖是以動態形式上傳。" msgid "The sticker was uploaded as static." msgstr "此貼圖是以靜態形式上傳。" +#. Activity log detail line under a deleted sticker, shown only when someone other than the person who deleted it had uploaded it. {user} is the user who uploaded the sticker, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogExpressionMessageMessages.ts:100 +msgid "The sticker was uploaded by {user}." +msgstr "貼圖由 {user} 上傳。" + +#. Activity log summary for a role that the app gave a member on its own, with no person involved, for example after a purchase. "The system" is the app itself acting automatically. The role goes to the member, not the other way round. {target} is the member who got the role, shown as a clickable user chip. {role} is the role, shown as a role chip with its name. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:140 +msgid "The system gave {target} the role {role}." +msgstr "系統已將身分組 {role} 授予 {target}。" + +#. Activity log summary for a role that the app took away from a member on its own, with no person involved. "The system" is the app itself acting automatically. The role is taken away from the member, and the role itself is not deleted. {role} is the role, shown as a role chip with its name. {target} is the member who lost the role, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:145 +msgid "The system removed the role {role} from {target}." +msgstr "系統已移除 {target} 的身分組 {role}。" + #. Body of the sticker upload size error modal when the upload service rejects the image as too large. #: src/features/expressions/components/modals/AddGuildStickerModal.tsx:59 msgid "The upload service rejected this sticker as larger than {maxSize}. Try a smaller file, a simpler image, or a shorter animation." @@ -32593,6 +34161,11 @@ msgstr "使用者名稱 <0>{fluxerTag} 已被使用。繼續操作將會自 msgid "The verification code is invalid or expired." msgstr "驗證碼無效或已過期。" +#. Activity log detail under a deleted webhook, used when someone other than the member who deleted it had created it. {user} is the member who created the webhook, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogInviteWebhookMessages.ts:155 +msgid "The webhook was created by {user}." +msgstr "Webhook 是由 {user} 建立的。" + #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the appearance tab. Keep it concise. #. Short label in the inline. Keep it concise. @@ -32810,7 +34383,7 @@ msgid "This card does not match your billing country, so it cannot be used for t msgstr "此卡片與您的帳單國家/地區不符,因此無法用於此本地化貨幣。請使用當地卡片,或返回 {productName} 並選擇其他付款方式。" #. Modal body shown when a category cannot accept another channel because the per-category limit is reached. Limit is interpolated. -#: src/features/app/components/layout/ChannelListContent.tsx:79 +#: src/features/app/components/layout/ChannelListContent.tsx:82 msgid "This category already contains the maximum of {maxChannelsPerCategory} channels." msgstr "此類別已包含最多 {maxChannelsPerCategory} 個頻道。" @@ -33923,7 +35496,7 @@ msgid "TOTP" msgstr "TOTP" #. Subtitle under the activity-log page title. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:98 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:112 msgid "Track moderator actions across the community." msgstr "追蹤社群中的管理員操作。" @@ -33953,6 +35526,11 @@ msgstr "要將群組擁有權轉移給 {userName} 嗎?" msgid "Transfer ownership" msgstr "轉移擁有權" +#. Activity log detail line under a community settings update, shown when the community got a new owner. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. {user} is the new owner, shown as a clickable user chip. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:296 +msgid "Transferred community ownership to {user}." +msgstr "將社群擁有權轉移給 {user}。" + #. placeholder {0}: NicknameUtils.getNickname(targetUser, guildId) #: src/features/guild/components/modals/TransferOwnershipModal.tsx:40 msgid "Transferred ownership to {0}" @@ -34316,6 +35894,51 @@ msgstr "開啟直播隱私設定" msgid "Turn text smileys into emoji" msgstr "將文字笑臉轉換為表情符號" +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned off. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:256 +msgid "Turned off mature content." +msgstr "關閉了成人內容。" + +#. Activity log detail row under an updated channel that no longer has slowmode, the wait between messages from one member. Use the same term for slowmode as the Slowmode channel setting. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogChannelMessages.ts:255 +msgid "Turned off slowmode." +msgstr "已關閉慢速模式。" + +#. Activity log detail line under a community settings update, shown when the community stopped showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:266 +msgid "Turned off the content warning." +msgstr "關閉了內容警告。" + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned off. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:86 +msgid "Turned off the detached banner." +msgstr "已關閉分離式橫幅。" + +#. Activity log detail line under a change to a member, for a moderator who turned off the microphone of the member in every voice channel of this community, so nobody can hear the member until it is turned back on. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator stops the member from hearing others is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:265 +msgid "Turned off the member's microphone in this community." +msgstr "已關閉該成員在此社群中的麥克風。" + +#. Activity log detail line under a community settings update, shown when the Mature content setting of the community was turned on. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:251 +msgid "Turned on mature content." +msgstr "已開啟成人內容。" + +#. Activity log detail line under a community settings update, shown when the community started showing a content warning before members can view it. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:261 +msgid "Turned on the content warning." +msgstr "已開啟內容警告。" + +#. Activity log detail line under a community settings update, shown when the Detached banner setting was turned on. Use the same name for the setting as the community settings page. It continues the entry summary, so it has no subject. It is a past tense record of a change the actor in the summary already made, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogGuildMessages.ts:81 +msgid "Turned on the detached banner." +msgstr "已開啟分離式橫幅。" + +#. Activity log detail line under a change to a member, for a moderator who turned the microphone of the member back on in the voice channels of this community, so others can hear the member again. Describe the effect the way the English does. Do not name the action with a noun such as a community mute, which reads as muting the whole community. The row where a moderator lets the member hear others again is a different action and must read clearly differently. It continues the entry summary, so it has no subject. It is a past tense record of an action that already happened, never an instruction to the reader. Do not write it as a command, a button label or in first or second person. +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogMemberMessages.ts:270 +msgid "Turned the member's microphone back on in this community." +msgstr "已在此社群中重新開啟成員的麥克風。" + #: src/features/auth/components/pages/oauth_authorize_page/OAuthScopesStep.tsx:156 msgid "Turning off scopes may prevent the app from working correctly." msgstr "關閉授權範圍可能會導致應用程式無法正常運作。" @@ -34471,7 +36094,7 @@ msgid "Ukrainian" msgstr "烏克蘭文" #. Error-state title in the activity log tab when fetching log entries failed. -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:126 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:136 msgid "Unable to load activity logs" msgstr "無法載入活動紀錄" @@ -34859,6 +36482,7 @@ msgstr "不明目標" msgid "unknown user" msgstr "不明使用者" +#. Activity log text shown in place of a member name inside an activity log sentence when the user is not loaded or no longer exists. #. Fallback avatar label in the audit log when the acting user is unavailable. #. Fallback label for a voice participant tile when no user or participant name is available. #. Fallback label in channel permissions when a member override references a user that is not loaded. @@ -34873,7 +36497,8 @@ msgstr "不明使用者" #: src/features/channel/components/modals/GroupInvitesBottomSheet.tsx:53 #: src/features/channel/utils/ChannelUtils.tsx:55 #: src/features/devtools/utils/CommandUtils.ts:27 -#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:114 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogSentence.tsx:54 +#: src/features/guild/components/modals/guild_tabs/GuildAuditLogTab.tsx:124 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:61 #: src/features/voice/components/VoiceParticipantAvatarList.tsx:44 #: src/features/voice/components/VoiceParticipantTile.tsx:174 @@ -36045,7 +37670,7 @@ msgstr "僅在此社群中使用。" #. Audit log target-type filter label. Filters entries that target a user account. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Slash-command argument type name, spoken by screen readers for an argument that takes a user. -#: src/features/app/config/AuditLogConstants.ts:160 +#: src/features/app/config/AuditLogConstants.ts:175 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:27 #: src/features/user/components/settings_utils/search_index/MyProfileIndex.ts:65 msgid "User" @@ -36568,8 +38193,10 @@ msgstr "佛蒙特州" msgid "Version" msgstr "版本" +#. Activity log value naming the highest member verification level of a community. #. Member verification level option in the community moderation settings tab. Short standalone severity label. #: src/features/guild/components/modals/guild_tabs/GuildModerationTab.tsx:84 +#: src/features/guild/utils/guild_tabs/audit_log/AuditLogSharedMessages.ts:69 msgid "Very high" msgstr "非常高" @@ -37670,7 +39297,7 @@ msgid "Webcam" msgstr "網路攝影機" #. Audit log target-type filter label. Filters entries that target a webhook. -#: src/features/app/config/AuditLogConstants.ts:185 +#: src/features/app/config/AuditLogConstants.ts:200 msgid "Webhook" msgstr "Webhook" @@ -37681,13 +39308,13 @@ msgstr "Webhook {currentName}" #. Audit log entry label. A new webhook integration was created. #. Short label in the channel webhooks tab. Keep it concise. -#: src/features/app/config/AuditLogConstants.ts:96 +#: src/features/app/config/AuditLogConstants.ts:111 #: src/features/channel/components/modals/channel_tabs/ChannelWebhooksTab.tsx:32 msgid "Webhook created" msgstr "Webhook 已建立" #. Audit log entry label. A webhook integration was deleted. -#: src/features/app/config/AuditLogConstants.ts:104 +#: src/features/app/config/AuditLogConstants.ts:119 msgid "Webhook deleted" msgstr "Webhook 已刪除" @@ -37697,7 +39324,7 @@ msgid "Webhook name" msgstr "Webhook 名稱" #. Audit log entry label. An existing webhook integration was edited. -#: src/features/app/config/AuditLogConstants.ts:100 +#: src/features/app/config/AuditLogConstants.ts:115 msgid "Webhook updated" msgstr "Webhook 已更新" diff --git a/fluxer_docs/scripts/VerifyDocsStyle.ts b/fluxer_docs/scripts/VerifyDocsStyle.ts index 9cfa18382..ca4a2910b 100644 --- a/fluxer_docs/scripts/VerifyDocsStyle.ts +++ b/fluxer_docs/scripts/VerifyDocsStyle.ts @@ -272,7 +272,7 @@ const ACCEPTED_TABLE_FINDINGS = new Map1 | object | Every [SSO configuration](#sso-configuration-object) field except `client_secret_set` and `redirect_uri`, plus `client_secret` | | gateway_rollout? | object | Any subset of the [Gateway rollout configuration](#gateway-rollout-configuration-object) fields, each bound as documented there | | voice_noise_suppression? | object | Any subset of the [noise suppression](#voice-noise-suppression-configuration-object) fields | +| guild_activity_log_presentation? | object | Any subset of the [guild activity log presentation](#guild-activity-log-presentation-configuration-object) fields | | experiment_delivery? | object | Any subset of the [experiment delivery](#experiment-delivery-configuration-object) fields | | message_hover_tracking? | object | Any subset of the [message hover tracking](#message-hover-tracking-configuration-object) fields | | message_keyboard_focus? | object | Any subset of the [message keyboard focus](#message-keyboard-focus-configuration-object) fields | @@ -607,6 +630,8 @@ The body has one optional object for each section. Fluxer leaves an absent secti `voice_noise_suppression` takes every [voice noise suppression configuration](#voice-noise-suppression-configuration-object) field except `config_version`, each bound as documented there. Fluxer raises `config_version` by one on each request that supplies at least one of them. A section that is absent, or present with no field set, writes nothing and leaves `config_version` alone. +`guild_activity_log_presentation` takes every [guild activity log presentation configuration](#guild-activity-log-presentation-configuration-object) field except `config_version`, each bound as documented there. Fluxer raises that section's own `config_version` by one on each request that supplies at least one of them, independently of the noise suppression revision. A section that is absent, or present with no field set, writes nothing and leaves `config_version` alone. + `message_hover_tracking` takes every [message hover tracking configuration](#message-hover-tracking-configuration-object) field except `config_version`, each bound as documented there. Fluxer raises that section's own `config_version` by one on each request that supplies at least one of them, independently of the noise suppression revision. A section that is absent, or present with no field set, writes nothing and leaves `config_version` alone. `message_keyboard_focus` takes every [message keyboard focus configuration](#message-keyboard-focus-configuration-object) field except `config_version`, each bound as documented there. Fluxer raises that section's own `config_version` by one on each request that supplies at least one of them, independently of the noise suppression revision. A section that is absent, or present with no field set, writes nothing and leaves `config_version` alone. `blocked_message_groups` takes every [blocked message groups configuration](#blocked-message-groups-configuration-object) field except `config_version`, each bound as documented there. Fluxer raises that section's own `config_version` by one on each request that supplies at least one of them, independently of the noise suppression revision. A section that is absent, or present with no field set, writes nothing and leaves `config_version` alone. @@ -647,7 +672,7 @@ Fluxer skips URL validation while the merged configuration leaves single sign-on | 400 | [error response](/admin-api/#error-response) | A policy transition is refused, returned as `INSTANCE_POLICY_TRANSITION_NOT_ALLOWED` | :::caution[Sections are applied one after another] -The order is `gateway_rollout`, `voice_noise_suppression`, `message_hover_tracking`, `message_keyboard_focus`, `blocked_message_groups`, `experiment_delivery`, `sso`, `registration`, `app_public` branding, legal, and registration fields, `integrations`, `media`, `policy`, and finally `app_public.setup`. A failure part way through leaves the earlier sections written. +The order is `gateway_rollout`, `voice_noise_suppression`, `guild_activity_log_presentation`, `message_hover_tracking`, `message_keyboard_focus`, `blocked_message_groups`, `experiment_delivery`, `sso`, `registration`, `app_public` branding, legal, and registration fields, `integrations`, `media`, `policy`, and finally `app_public.setup`. A failure part way through leaves the earlier sections written. ::: ### Side effects diff --git a/fluxer_docs/src/content/docs/gateway/events.md b/fluxer_docs/src/content/docs/gateway/events.md index d2f01e0f3..282833fd5 100644 --- a/fluxer_docs/src/content/docs/gateway/events.md +++ b/fluxer_docs/src/content/docs/gateway/events.md @@ -629,7 +629,9 @@ Each item has exactly one of the fields. ### GUILD_AUDIT_LOG_ENTRY_CREATE -An audit log entry was written. The payload has the shape of a [guild audit log entry object](/http-api/guild-audit-logs/#guild-audit-log-entry-object) with `guild_id` added. It always has `id`, `action_type`, `user_id`, and `target_id`. It has `reason` when the request supplied one, `options` when the entry recorded any metadata, and `changes` when at least one change survives scrubbing. +An audit log entry was written. The payload is the [guild audit log entry object](/http-api/guild-audit-logs/#guild-audit-log-entry-object) that [List guild audit logs](/http-api/guild-audit-logs/#list-guild-audit-logs) returns for the same entry, with `guild_id` added. It always has `id`, `action_type`, `user_id`, and `target_id`. `reason` is resolved as the [audit log reason](/http-api/guild-audit-logs/#audit-log-reason) describes, and `options` has only the published [audit log options](/http-api/guild-audit-logs/#audit-log-options-object) keys, with the same number and boolean types. `changes` is present when at least one change survives scrubbing. + +An update that changes nothing records no entry, as the [audit actions](/http-api/guild-audit-logs/#audit-actions) registry states, so it emits no event. The `ip` change key is stripped from `changes`, so an entry whose only change was `ip` has no `changes` at all. A client MUST treat an absent `options` or `changes` as an empty set. diff --git a/fluxer_docs/src/content/docs/http-api/channels.mdx b/fluxer_docs/src/content/docs/http-api/channels.mdx index 98a5a2623..6647cca29 100644 --- a/fluxer_docs/src/content/docs/http-api/channels.mdx +++ b/fluxer_docs/src/content/docs/http-api/channels.mdx @@ -317,7 +317,7 @@ On a deployment that configures no voice topology, a missing channel, an invisib ## Modify channel - + Modifies a guild channel or a group direct message and returns the updated [channel object](#channel-object). Emits a [Channel Update](/gateway/events/#channel-update) Gateway event. @@ -455,7 +455,7 @@ A guild channel change emits [Channel Update](/gateway/events/#channel-update) t Changing `rate_limit_per_user` clears the remaining slowmode delay of every user in the channel, so each user's next message is checked against the new interval. Changing `rtc_region` on a guild voice channel moves its active voice connections to the selected region. -A request that changes at least one field creates a channel update audit log entry with no reason. Supplying `permission_overwrites` also creates one overwrite create, update, or delete audit log entry for each overwrite the array adds, changes, or removes. +A request that changes at least one field creates a channel update audit log entry with the supplied reason. Supplying `permission_overwrites` also creates one overwrite create, update, or delete audit log entry for each overwrite the array adds, changes, or removes. A group direct message change emits [Channel Update](/gateway/events/#channel-update) to every current recipient. A name or successful icon change creates a system message delivered with [Message Create](/gateway/events/#message-create), and replacing the icon permanently deletes the previous one. Ownership and nickname changes create no system message and no audit entry. @@ -465,7 +465,7 @@ A group direct message change emits [Channel Update](/gateway/events/#channel-up ## Delete or leave channel - + Deletes a guild channel, closes a direct message, or removes the caller from a group direct message. Returns 204 with an empty body. Emits a [Channel Delete](/gateway/events/#channel-delete) Gateway event. @@ -682,7 +682,7 @@ Removing the final recipient permanently deletes the channel's messages, removes ## Set channel permission overwrite - + Creates or replaces one permission overwrite on a guild channel and returns 204 with an empty body. Requires [MANAGE_ROLES](/http-api/permissions/) in that channel. Emits a [Channel Update](/gateway/events/#channel-update) Gateway event. @@ -737,7 +737,7 @@ A larger decimal string returns 400 `INVALID_FORM_BODY` with the code `INTEGER_O Fluxer emits [Channel Update](/gateway/events/#channel-update) to every session subscribed to the guild, including when the submitted overwrite exactly matches the stored one. When the channel is a category, every child whose overwrites exactly matched the category's previous values receives a copy of the category's new overwrites and its own Channel Update. -The operation records an overwrite create or update audit entry with no reason. An unchanged overwrite records no audit entry. +The operation records an overwrite create or update audit entry with the supplied reason. An unchanged overwrite records no audit entry. ### Rate limit @@ -745,7 +745,7 @@ The operation records an overwrite create or update audit entry with no reason. ## Delete channel permission overwrite - + Deletes one permission overwrite from a guild channel and returns 204 with an empty body. Requires [MANAGE_ROLES](/http-api/permissions/) in that channel. Emits a [Channel Update](/gateway/events/#channel-update) Gateway event. @@ -774,7 +774,7 @@ The operation is idempotent, does not require `VIEW_CHANNEL`, and never returns ### Side effects -Fluxer emits [Channel Update](/gateway/events/#channel-update) to every session subscribed to the guild, including when the identifier names no existing overwrite. Removing an overwrite that exists also records an overwrite delete audit entry with the previous overwrite state and no reason. An identifier that names no existing overwrite records no audit entry. When the target channel is a category, each child whose overwrites exactly matched the category's previous overwrites receives a copy of the category's new overwrites and its own Channel Update. +Fluxer emits [Channel Update](/gateway/events/#channel-update) to every session subscribed to the guild, including when the identifier names no existing overwrite. Removing an overwrite that exists also records an overwrite delete audit entry with the previous overwrite state and the supplied reason. An identifier that names no existing overwrite records no audit entry. When the target channel is a category, each child whose overwrites exactly matched the category's previous overwrites receives a copy of the category's new overwrites and its own Channel Update. ### Rate limit diff --git a/fluxer_docs/src/content/docs/http-api/experiments.mdx b/fluxer_docs/src/content/docs/http-api/experiments.mdx index 3c1940a07..e4b376ee9 100644 --- a/fluxer_docs/src/content/docs/http-api/experiments.mdx +++ b/fluxer_docs/src/content/docs/http-api/experiments.mdx @@ -6,7 +6,7 @@ description: The experiment assignments envelope, the revalidation and polling c import RouteHeader from '@/components/RouteHeader.astro'; -An experiment is an instance-wide rollout that an operator configures. For each account, Fluxer works out from that configuration whether the account is in the rollout and which settings the account receives. The single route on this page resolves every experiment the server defines and returns them in one envelope, together with the polling cadence they share. This server defines `voice_noise_suppression`, whose placement protocol [Voice](/voice/) defines, `message_hover_tracking`, which selects one of two client implementations of the message hover state, `message_keyboard_focus`, which selects one of two client implementations of keyboard navigation in the message list, and `blocked_message_groups`, which selects how a client renders a revealed block of blocked messages. +An experiment is an instance-wide rollout that an operator configures. For each account, Fluxer works out from that configuration whether the account is in the rollout and which settings the account receives. The single route on this page resolves every experiment the server defines and returns them in one envelope, together with the polling cadence they share. This server defines `voice_noise_suppression`, whose placement protocol [Voice](/voice/) defines, `message_hover_tracking`, which selects one of two client implementations of the message hover state, `message_keyboard_focus`, which selects one of two client implementations of keyboard navigation in the message list, `blocked_message_groups`, which selects how a client renders a revealed block of blocked messages, and `guild_activity_log_presentation`, which selects one of two client renderings of the community activity log. Every assignment is advice. A client that ignores one behaves as it does with the rollout off, and no route and no Gateway event reports what a client actually ran. @@ -36,10 +36,11 @@ One entry per experiment. The envelope reports this object even when it is empty | message_hover_tracking? | [message hover tracking assignment](#message-hover-tracking-assignment-object) object | The caller's message hover tracking assignment | | message_keyboard_focus? | [message keyboard focus assignment](#message-keyboard-focus-assignment-object) object | The caller's message keyboard focus assignment | | blocked_message_groups? | [blocked message groups assignment](#blocked-message-groups-assignment-object) object | The caller's blocked message groups assignment | +| guild_activity_log_presentation? | [guild activity log presentation assignment](#guild-activity-log-presentation-assignment-object) object | The caller's guild activity log presentation assignment | Ignore unknown experiments and treat a missing experiment as off. -This server version writes `voice_noise_suppression`, `message_hover_tracking`, `message_keyboard_focus`, and `blocked_message_groups` on every response, including while a rollout is disabled. The disabled value is the first [resolution outcome](#resolution-outcomes) below, which reports `enabled` false and the stored `config_version`, so a client that compares `config_version` with the value from its previous response can see that an operator saved the configuration, even while the rollout stays disabled, and needs no second request for it. +This server version writes `voice_noise_suppression`, `message_hover_tracking`, `message_keyboard_focus`, `blocked_message_groups`, and `guild_activity_log_presentation` on every response, including while a rollout is disabled. The disabled value is the first [resolution outcome](#resolution-outcomes) below, which reports `enabled` false and the stored `config_version`, so a client that compares `config_version` with the value from its previous response can see that an operator saved the configuration, even while the rollout stays disabled, and needs no second request for it. ## Noise suppression backends @@ -186,6 +187,33 @@ A caller is drawn either by the operator's allowlist, which sets `source` to `us `config_version` reports the stored revision in all outcomes, the rollout being off included. A client branches on `user_targeted` alone. +## Guild activity log presentation assignment object + +One resolution of the instance guild activity log presentation rollout against one account. Every field is present whenever the key is written. + +The rollout selects how a client renders the community activity log. A drawn client renders each entry as a summary sentence followed by its recorded changes. A client that is not drawn keeps the rendering it ships with. Neither arm changes what the API returns, and no route reports which arm a client ran. + +### Structure + +| Field | Type | Description | +| --- | --- | --- | +| enabled | boolean | Whether the rollout is running on this instance | +| config_version | integer | The revision of the instance configuration this assignment was resolved from | +| user_targeted | boolean | Whether the caller is inside the rollout | +| source | ?string | Which rule targeted the caller, one of `user_rule` or `canary`, and null where the caller is not targeted | + +### Activity log presentation resolution outcomes + +The outcomes below set `user_targeted` to false, and they differ in what else they report. + +1. The rollout is off. `enabled` is false and `source` is null. +2. The operator has excluded the caller. `enabled` is true and `source` is null. +3. The caller was not drawn. `enabled` is true and `source` is null. + +A caller is drawn either by the operator's allowlist, which sets `source` to `user_rule`, or by the sampled share of the account population, which sets `source` to `canary`. The blocklist is read before the allowlist, so an account named in both is not drawn. + +`config_version` reports the stored revision in all outcomes, the rollout being off included. A client branches on `user_targeted` alone. + ## Get experiment assignments diff --git a/fluxer_docs/src/content/docs/http-api/guild-audit-logs.mdx b/fluxer_docs/src/content/docs/http-api/guild-audit-logs.mdx index 94bda4a55..1f98825a3 100644 --- a/fluxer_docs/src/content/docs/http-api/guild-audit-logs.mdx +++ b/fluxer_docs/src/content/docs/http-api/guild-audit-logs.mdx @@ -14,10 +14,19 @@ A route marked Audit reason accepts the `X-Audit-Log-Reason` request header, lis Fluxer trims the value. A value that is blank before trimming, empty after it, or longer than 512 characters after it counts as no reason at all. None of those values fails the request, so a reason that misses the bound is dropped and the operation still succeeds. -The operation writes the accepted reason onto its entry, returns it as the entry `reason` field, and sends it in the [Guild Audit Log Entry Create](/gateway/events/#guild-audit-log-entry-create) Dispatch. +The channel and message routes that write entries record the header as well: [Modify channel](/http-api/channels/#modify-channel), [Delete or leave channel](/http-api/channels/#delete-or-leave-channel), [Set channel permission overwrite](/http-api/channels/#set-channel-permission-overwrite), [Delete channel permission overwrite](/http-api/channels/#delete-channel-permission-overwrite), [Delete message](/http-api/messages/#delete-message), [Bulk delete messages](/http-api/messages/#bulk-delete-messages), [Pin message](/http-api/messages/#pin-message), and [Unpin message](/http-api/messages/#unpin-message). + +Two operations use a reason from the request body when the header supplies none: + +- [Create or replace guild ban](/http-api/guild-moderation/#create-or-replace-guild-ban) uses the body `reason`. +- [Modify guild member](/http-api/guild-members/#modify-guild-member) uses the trimmed `timeout_reason` when the body also has `communication_disabled_until`. + +Fluxer never percent-decodes a body reason either. The operation writes the accepted reason onto its entry, returns it as the entry `reason` field, and sends it in the [Guild Audit Log Entry Create](/gateway/events/#guild-audit-log-entry-create) Dispatch. + +Fluxer resolves the reason again when it reads an entry. A [MEMBER_BAN_ADD](#audit-actions) entry with a blank stored reason returns the ban `reason` from its change list, and a [MEMBER_UPDATE](#audit-actions) entry with a blank stored reason returns the timeout reason stored with it, when it has one. The result is trimmed, and a blank result is omitted. :::note[Some operations record no reason at all] -Channel modification and deletion, message deletion, bulk message deletion, pinning, unpinning, bot addition, and most [permission overwrite](#permission-overwrite-change-fields) entries never have one. +Bot addition, the role Fluxer creates and assigns to a bot it adds with permissions, a Visionary role grant, a message deletion made by [Delete message attachment](/http-api/messages/#delete-message-attachment), and a consolidated bulk deletion entry never have one. ::: ## Guild audit log response object @@ -34,11 +43,20 @@ One page of audit history together with the accounts and webhooks it references. 1 The page ordering is defined by the [query parameters](#query-parameters) of the request that produced it -2 Deduplicated by user ID, and has no user named only by an option field or by a change value +2 Deduplicated by user ID, and a referenced value that is not a snowflake names no account 3 One object for each distinct webhook that a returned webhook action targets and that still exists, so a deleted webhook resolves to no object -`users` holds the actor of every returned entry and, for an action whose `target_id` names an account, that account as well. An account that can no longer be resolved is still returned, as the deleted-account representation with the username `DeletedUser`, the discriminator `0000`, the global name `Deleted User`, a null avatar, a null avatar colour, and `flags` of `0`. +`users` has the actor of every returned entry and each account the entry references: + +- `target_id` of every action from [MEMBER_KICK](#audit-actions) through [MEMBER_DISCONNECT](#audit-actions), and of [BOT_ADD](#audit-actions) +- `target_id` of a [channel overwrite action](#audit-actions) whose `options.type` is `1` +- the `owner_id` change `new_value` of [GUILD_UPDATE](#audit-actions) +- the `moderator_id` change `old_value` of [MEMBER_BAN_REMOVE](#audit-actions) +- `options.inviter_id` of [INVITE_DELETE](#audit-actions) +- the `creator_id` change `old_value` of [WEBHOOK_DELETE](#audit-actions), [EMOJI_DELETE](#audit-actions), and [STICKER_DELETE](#audit-actions) + +An account that can no longer be resolved is still returned, as the deleted-account representation with the username `DeletedUser`, the discriminator `0000`, the global name `Deleted User`, a null avatar, a null avatar colour, and `flags` of `0`. ## Guild audit log entry object @@ -60,7 +78,7 @@ One recorded guild change. An entry is immutable once written, except for a run 2 A decimal snowflake string for every action except [INVITE_CREATE](#audit-actions) and [INVITE_DELETE](#audit-actions), where it is the invite code, and null for [MESSAGE_BULK_DELETE](#audit-actions) -3 The field is omitted when the operation recorded no reason, and an entry written by consolidation never has one +3 The field is omitted when no non-blank reason resolves as described under [audit log reason](#audit-log-reason), so an entry written by consolidation never has one 4 The field is omitted when the action recorded no option key that this registry publishes @@ -85,7 +103,7 @@ Entries remain available for 45 days. A consolidated entry starts a new 45-day p ## Audit actions -The Value column is the numeric `action_type`, which is also the value the `action_type` query filter accepts. Each description names what `target_id` identifies and which [audit log options](#audit-log-options-object) the action records. The overwrite options are `id`, `type`, and `channel_id`. The invite options are `max_age`, `max_uses`, `temporary`, `channel_id`7, and `inviter_id`7. +The Value column is the numeric `action_type`, which is also the value the `action_type` query filter accepts. Each description names what `target_id` identifies and which [audit log options](#audit-log-options-object) the action records. The overwrite options are `id`, `type`, `channel_id`, and `role_name`10. The invite options are `max_age`, `max_uses`, `temporary`, `channel_id`7, and `inviter_id`7. | Value | Name | Description | | --- | --- | --- | @@ -98,15 +116,15 @@ The Value column is the numeric `action_type`, which is also the value the `acti | 15 | CHANNEL_OVERWRITE_DELETE | Channel permission overwrite was deleted. `target_id` is the role or member, and the action records the overwrite options | | 20 | MEMBER_KICK2 | Member was removed by a moderator. `target_id` is the user, and the action records no options | | 21 | MEMBER_PRUNE3 | Inactive members were pruned. `target_id` is nothing, and the action records no options | -| 22 | MEMBER_BAN_ADD | Guild ban was created or replaced. `target_id` is the user, and the action records `delete_member_days`4 | +| 22 | MEMBER_BAN_ADD | Guild ban was created or replaced. `target_id` is the user, and the action records `delete_message_seconds`4 | | 23 | MEMBER_BAN_REMOVE | Guild ban was removed. `target_id` is the user, and the action records no options | -| 24 | MEMBER_UPDATE5 | Guild member state was changed. `target_id` is the user, and the action records no options | -| 25 | MEMBER_ROLE_UPDATE5 | One role was added to or removed from a member. `target_id` is the user, and the action records no options | +| 24 | MEMBER_UPDATE | Guild member state was changed. `target_id` is the user, and the action records no options | +| 25 | MEMBER_ROLE_UPDATE | One role was added to or removed from a member. `target_id` is the user, and the action records `role_name`5 | | 26 | MEMBER_MOVE6 | Member voice session was moved to another channel. `target_id` is the user, and the action records `channel_id` and `count` | | 27 | MEMBER_DISCONNECT6 | Member voice session was disconnected. `target_id` is the user, and the action records `channel_id` and `count` | | 28 | BOT_ADD | Bot was added to the guild. `target_id` is the user, and the action records `temporary` | | 30 | ROLE_CREATE | Role was created. `target_id` is the role, and the action records no options | -| 31 | ROLE_UPDATE | Role was changed. `target_id` is the role, and the action records no options | +| 31 | ROLE_UPDATE | Role was changed. `target_id` is the role, and the action records `role_name` | | 32 | ROLE_DELETE | Role was deleted. `target_id` is the role, and the action records no options | | 40 | INVITE_CREATE | Invite was created. `target_id` is the invite code, and the action records the invite options | | 41 | INVITE_UPDATE8 | Invite was changed. `target_id` is the invite code, and the action records no options | @@ -117,7 +135,7 @@ The Value column is the numeric `action_type`, which is also the value the `acti | 60 | EMOJI_CREATE | Emoji was created. `target_id` is the emoji, and the action records no options | | 61 | EMOJI_UPDATE | Emoji was changed. `target_id` is the emoji, and the action records no options | | 62 | EMOJI_DELETE | Emoji was deleted. `target_id` is the emoji, and the action records no options | -| 72 | MESSAGE_DELETE | Single message was deleted by a moderator. `target_id` is the message, and the action records `channel_id` | +| 72 | MESSAGE_DELETE | Single message was deleted. `target_id` is the message, and the action records `channel_id` | | 73 | MESSAGE_BULK_DELETE9 | Several messages were deleted in one operation. `target_id` is nothing, and the action records `channel_id` and `count` | | 74 | MESSAGE_PIN | Message was pinned. `target_id` is the message, and the action records `channel_id` and `message_id` | | 75 | MESSAGE_UNPIN | Message was unpinned. `target_id` is the message, and the action records `channel_id` and `message_id` | @@ -131,11 +149,11 @@ The Value column is the numeric `action_type`, which is also the value the `acti 3 The value is defined by the wire contract and is accepted by the `action_type` filter, and no current guild operation records it -4 The option is always recorded. Its value is the legacy `delete_message_days` body field of [Create or replace guild ban](/http-api/guild-moderation/#create-or-replace-guild-ban), which defaults to `0`, so a ban that used `delete_message_seconds` or sent no body at all records `"0"` +4 The option is recorded when the resolved message deletion window of the ban is positive. An older ban entry can have the deprecated `delete_member_days` option -5 The entry has no `options`, so a member role change does not name the role it added or removed. The caller reads that from the [guild member change fields](#guild-member-change-fields) +5 Recorded when the role exists at the write. The role ID is the difference between the `roles` change values in the [guild member change fields](#guild-member-change-fields) -6 `count` is always `1`. `channel_id` is the destination channel for a move and the vacated channel for a disconnect +6 `count` is always `1`, and `channel_id` is the destination channel for a move and the vacated channel for a disconnect. A move into the channel the session already occupies records no entry 7 The option is recorded only when the recorded entity has that value, so an invite with no channel or no inviter records neither, and a webhook with no channel records no option at all @@ -143,6 +161,12 @@ The Value column is the numeric `action_type`, which is also the value the `acti 9 A bulk deletion entry is recorded either by a bulk message deletion operation or by the consolidation described under [List guild audit logs](#list-guild-audit-logs) +10 Recorded for an overwrite whose target is a role other than `@everyone`, when that role exists at the write + +:::note[An update that changes nothing records no entry] +GUILD_UPDATE, CHANNEL_UPDATE, CHANNEL_OVERWRITE_UPDATE, MEMBER_UPDATE, MEMBER_ROLE_UPDATE, MEMBER_MOVE, ROLE_UPDATE, WEBHOOK_UPDATE, EMOJI_UPDATE, and STICKER_UPDATE need a change other than `ip`. GUILD_UPDATE also ignores `guild_id`, `member_count`, and the image width and height fields. A reason alone records nothing. +::: + ## Audit log options object Every field is present only for the actions listed against it in the [audit actions](#audit-actions) registry. Only the keys in this registry are published, and the response omits `options` entirely when an entry recorded none of them. @@ -154,25 +178,30 @@ Every field is present only for the actions listed against it in the [audit acti | channel_id | string | The decimal ID of the channel the action concerns | | count1 | number | The number of entities the action affected | | delete_member_days2 | string | The whole days of the banned member's messages the ban deleted | +| delete_message_seconds3 | number | The seconds of the banned member's messages the ban deleted | | id | string | The decimal ID of the role or member an overwrite applies to | -| integration_type3 | number | The type of the integration the entry names | +| integration_type4 | number | The type of the integration the entry names | | message_id | string | The decimal ID of the single message the action concerns | -| members_removed3 | number | The number of memberships the action removed | -| role_name3 | string | The name of the role the action concerns | -| type4 | number | The channel type, or the permission overwrite type | +| members_removed4 | number | The number of memberships the action removed | +| role_name5 | string | The name of the role the action concerns, as it was when the entry was written | +| type6 | number | The channel type, or the permission overwrite type | | inviter_id | string | The decimal ID of the user that created the invite | | max_age | number | The configured invite lifetime in seconds | | max_uses | number | The configured maximum use count | | temporary | boolean | Whether the recorded entity is temporary | -| uses3 | number | The invite use count recorded with the action | +| uses4 | number | The invite use count recorded with the action | 1 The value is the length of the consolidated run for [MESSAGE_BULK_DELETE](#audit-actions) and is always `1` for the voice actions -2 Read from the legacy `delete_message_days` body field of [Create or replace guild ban](/http-api/guild-moderation/#create-or-replace-guild-ban), so a ban that supplied only `delete_message_seconds` records `"0"` +2 Deprecated, and present only on a ban entry recorded before `delete_message_seconds`. Its value is the legacy `delete_message_days` body field of [Create or replace guild ban](/http-api/guild-moderation/#create-or-replace-guild-ban), so a ban that sent only `delete_message_seconds` has `"0"` -3 The field is defined by the wire contract and no current guild operation records it +3 Present when the resolved deletion window of [Create or replace guild ban](/http-api/guild-moderation/#create-or-replace-guild-ban) is positive, whichever body field set it -4 The value is a [channel type](/http-api/channels/#channel-types) for the channel actions and a [permission overwrite type](/http-api/channels/#permission-overwrite-types) for the overwrite actions +4 The field is defined by the wire contract and no current guild operation records it + +5 Recorded by [MEMBER_ROLE_UPDATE](#audit-actions), [ROLE_UPDATE](#audit-actions), and an overwrite action whose target is a role other than `@everyone` + +6 The value is a [channel type](/http-api/channels/#channel-types) for the channel actions and a [permission overwrite type](/http-api/channels/#permission-overwrite-types) for the overwrite actions ## Audit log change object @@ -236,17 +265,21 @@ Recorded by [GUILD_UPDATE](#audit-actions). | default_message_notifications | number | The [default message notification level](/http-api/guilds/#default-message-notification-levels) recorded with the change | | system_channel_id | ?string | The decimal ID of the configured system channel, or null when the guild sets none | | system_channel_flags | number | The [system channel flags](/http-api/guilds/#system-channel-flags) mask recorded with the change | -| rules_channel_id | ?string | The decimal ID of the configured rules channel, or null when the guild sets none | +| rules_channel_id3 | ?string | The decimal ID of the configured rules channel, or null when the guild sets none | | afk_channel_id | ?string | The decimal ID of the configured AFK voice channel, or null when the guild sets none | | afk_timeout | number | The AFK timeout in seconds | -| disabled_operations | number | The [disabled guild operations](/http-api/guilds/#disabled-guild-operations) mask recorded with the change | -| member_count | number | The member count recorded with the mutation | +| disabled_operations3 | number | The [disabled guild operations](/http-api/guilds/#disabled-guild-operations) mask recorded with the change | +| member_count3 | number | The member count recorded with the mutation | | message_history_cutoff | ?ISO8601 timestamp | The configured message history cutoff, or null when the guild sets none | 1 The field holds the same value on both sides of every guild action, so it never produces a change object 2 A change object appears only when a feature was added or removed +3 No current guild operation records the field + +[Modify guild](/http-api/guilds/#modify-guild) records every field in this table except `guild_id`, `owner_id`, `vanity_url_code`, `rules_channel_id`, `disabled_operations`, and `member_count`. [Transfer guild ownership](/http-api/guild-members/#transfer-guild-ownership) records only `owner_id`, and [Modify guild custom invite URL](/http-api/guilds/#modify-guild-custom-invite-url) records only `vanity_url_code`. + #### Channel change fields Recorded by [CHANNEL_CREATE](#audit-actions), [CHANNEL_UPDATE](#audit-actions), and [CHANNEL_DELETE](#audit-actions). @@ -257,6 +290,7 @@ Recorded by [CHANNEL_CREATE](#audit-actions), [CHANNEL_UPDATE](#audit-actions), | type | number | The [channel type](/http-api/channels/#channel-types) recorded with the change | | name | ?string | The name the channel was given by this change | | topic | ?string | The topic the channel was given by this change, or null when it has none | +| url1 | ?string | The destination URL of the channel, or null when it has none | | parent_id | ?string | The decimal ID of the parent category, or null when the channel sits at the top level | | position | number | The position of the channel among its siblings | | nsfw | ?boolean | Whether the channel is marked age restricted, or null when it has no override | @@ -267,9 +301,13 @@ Recorded by [CHANNEL_CREATE](#audit-actions), [CHANNEL_UPDATE](#audit-actions), | voice_connection_limit | ?number | The configured per-user voice connection limit | | bitrate | ?number | The voice bitrate in bits per second | | rtc_region | ?string | The pinned voice region, or null when the channel is routed automatically | -| permission_overwrite_count1 | number | The number of permission overwrites the channel has | +| permission_overwrite_count2 | number | The number of permission overwrites the channel has | -1 Only the count is recorded. An individual overwrite mutation records its own [permission overwrite](#permission-overwrite-change-fields) entry +1 Recorded only for a `GUILD_LINK` [channel type](/http-api/channels/#channel-types) + +2 No current channel operation records the field. An individual overwrite mutation records its own [permission overwrite](#permission-overwrite-change-fields) entry + +Changing `permission_overwrites` through [Modify channel](/http-api/channels/#modify-channel) records overwrite entries and adds no change to the [CHANNEL_UPDATE](#audit-actions) entry. #### Permission overwrite change fields @@ -321,7 +359,9 @@ Recorded by [MEMBER_BAN_ADD](#audit-actions) and [MEMBER_BAN_REMOVE](#audit-acti | moderator_id | string | The decimal ID of the user that issued the ban | | banned_at | ISO8601 timestamp | The time the ban was issued | | expires_at | ?ISO8601 timestamp | The expiry of a temporary ban, or null for a permanent ban | -| reason | ?string | The stored [ban](/http-api/guild-moderation/#guild-ban-object) reason, which is not the [audit log reason](#audit-log-reason) | +| reason1 | ?string | The stored [ban](/http-api/guild-moderation/#guild-ban-object) reason | + +1 The body `reason` when the request sent one, and the `X-Audit-Log-Reason` value otherwise. The entry `reason` is the header when one was sent, so the two differ when a request sends both with different values #### Guild role change fields @@ -343,7 +383,11 @@ Recorded by [ROLE_CREATE](#audit-actions), [ROLE_UPDATE](#audit-actions), and [R 1 Recorded only by [Modify guild role](/http-api/permissions/#modify-guild-role), and only when the mask changed. The value is an object with `added` and `removed` string arrays of permission names -`permissions_diff` arrives as `new_value` with no `old_value`, and the same change list still has the `permissions` change. The role position and hoist position operations record [ROLE_UPDATE](#audit-actions) without it. +`permissions_diff` arrives as `new_value` with no `old_value`, and the same change list still has the `permissions` change. + +[Modify guild role positions](/http-api/permissions/#modify-guild-role-positions) records one [ROLE_UPDATE](#audit-actions) entry for each role that moved, with only the `position` change. Fluxer orders the roles other than `@everyone` by `position` descending, then by ID ascending, before and after the write. The largest set of roles that keep their relative order counts as unmoved, and where several sets qualify, the set whose roles come earliest in the new order is used. A request that only renumbers positions records no entry. + +[Modify role hoist positions](/http-api/permissions/#modify-role-hoist-positions) and [Reset role hoist positions](/http-api/permissions/#reset-role-hoist-positions) apply the same rule to the member list order, with only the `hoist_position` change in each entry. That order is the hoisted roles other than `@everyone`, by `hoist_position` descending with `position` used when a role has no hoist position, then by ID ascending. A role that is not hoisted has an entry whenever its `hoist_position` changed. #### Invite change fields @@ -451,7 +495,7 @@ The read is ordered from newest to oldest by entry ID. `before` selects entries Consolidated entries have new IDs but retain the position of the run they replace. Sort the page by ID if a strictly descending array is required. -A page holds fewer entries than `limit` only when the guild has no further matching entries in that direction. +A stored update entry that fails the [no-change rule](#audit-actions) is skipped and does not count toward `limit`. A page holds fewer entries than `limit` only when the guild has no further matching entries in that direction. ### Response diff --git a/fluxer_docs/src/content/docs/http-api/guild-emojis.mdx b/fluxer_docs/src/content/docs/http-api/guild-emojis.mdx index f9cece208..c5fb20dc2 100644 --- a/fluxer_docs/src/content/docs/http-api/guild-emojis.mdx +++ b/fluxer_docs/src/content/docs/http-api/guild-emojis.mdx @@ -320,7 +320,7 @@ An emoji that does not belong to the guild in the path returns 404 `UNKNOWN_EMOJ ### Side effects -The operation sets the requested name, emits [Guild Emojis Update](/gateway/events/#guild-emojis-update) with the guild's complete emoji collection, and then writes an [`EMOJI_UPDATE`](/http-api/guild-audit-logs/#audit-actions) audit entry. Both are produced even when the submitted name equals the current name, and the audit entry then records an empty change list. +The operation sets the requested name, emits [Guild Emojis Update](/gateway/events/#guild-emojis-update) with the guild's complete emoji collection, and then writes an [`EMOJI_UPDATE`](/http-api/guild-audit-logs/#audit-actions) audit entry. A submitted name that equals the current name still emits the Dispatch and records no audit entry. ### Rate limit diff --git a/fluxer_docs/src/content/docs/http-api/guild-members.mdx b/fluxer_docs/src/content/docs/http-api/guild-members.mdx index 49f18989c..bbcba03a0 100644 --- a/fluxer_docs/src/content/docs/http-api/guild-members.mdx +++ b/fluxer_docs/src/content/docs/http-api/guild-members.mdx @@ -121,7 +121,7 @@ The request body shared by [Modify current guild member](#modify-current-guild-m 6 An ISO 8601 date and time. A blank string is normalised to null -7 Trimmed, and never published in the audit log response +7 Trimmed, and used as the [audit log reason](/http-api/guild-audit-logs/#audit-log-reason) of the member update entry when the request sends no `X-Audit-Log-Reason` header 8 `channel_id` moves or disconnects, and `connection_id` selects one of the member's voice connections @@ -277,9 +277,9 @@ The body is a [guild member update object](#guild-member-update-object) without The operation updates the membership, records a [`MEMBER_UPDATE`](/http-api/guild-audit-logs/#audit-actions) audit entry and emits [Guild Member Update](/gateway/events/#guild-member-update). -The target's own sessions always receive the Dispatch. Other guild sessions receive it subject to [event filtering](/gateway/event-filtering/). The audit entry and Dispatch are produced even when the resulting membership is unchanged, and an entry whose change list is empty is published without a `changes` member. +The target's own sessions always receive the Dispatch. Other guild sessions receive it subject to [event filtering](/gateway/event-filtering/). The Dispatch is produced even when the resulting membership is unchanged, and an update that changes nothing records no audit entry. -Supplying `channel_id` moves or disconnects every voice connection the member holds, or only the one named by `connection_id`. It records one [`MEMBER_MOVE`](/http-api/guild-audit-logs/#audit-actions) or [`MEMBER_DISCONNECT`](/http-api/guild-audit-logs/#audit-actions) audit entry for the whole request, however many connections it touched. It emits [Voice State Update](/gateway/events/#voice-state-update) to sessions that can view the affected channel. Supplying `mute` or `deaf` updates the membership, records no separate audit entry, and emits the same voice Dispatch once for each live connection. +Supplying `channel_id` moves or disconnects every voice connection the member holds, or only the one named by `connection_id`. It records one [`MEMBER_MOVE`](/http-api/guild-audit-logs/#audit-actions) or [`MEMBER_DISCONNECT`](/http-api/guild-audit-logs/#audit-actions) audit entry for the whole request, however many connections it touched. A move into the channel the member already occupies records no entry. It emits [Voice State Update](/gateway/events/#voice-state-update) to sessions that can view the affected channel. Supplying `mute` or `deaf` updates the membership, records no separate audit entry, and emits the same voice Dispatch once for each live connection. Fluxer emits [Guild Audit Log Entry Create](/gateway/events/#guild-audit-log-entry-create) for every audit entry. A request that fails after uploading a new avatar or banner leaves the previous asset in place. @@ -449,7 +449,7 @@ The operation requires the [sudo verification fields](/http-api/guilds/#sudo-ver The operation changes only the guild's `owner_id`. The outgoing owner keeps every role, permission overwrite, and membership they held. -It records a [`GUILD_UPDATE`](/http-api/guild-audit-logs/#audit-actions) audit entry naming the previous and new owner in its change list, emits [Guild Audit Log Entry Create](/gateway/events/#guild-audit-log-entry-create), and emits [Guild Update](/gateway/events/#guild-update) to every session that can see the guild. The audit log response has no `options` member for this entry. +It records a [`GUILD_UPDATE`](/http-api/guild-audit-logs/#audit-actions) audit entry naming the previous and new owner in its change list, emits [Guild Audit Log Entry Create](/gateway/events/#guild-audit-log-entry-create), and emits [Guild Update](/gateway/events/#guild-update) to every session that can see the guild. A request naming the current owner changes nothing and records no audit entry. The audit log response has no `options` member for this entry. An account with an enrolled second factor also receives a reissued sudo proof. A bot credential and an account whose only proof was a password receive `X-Fluxer-Sudo-Mode-JWT` only when the request itself has one. @@ -495,9 +495,9 @@ The guild owner receives 404 `UNKNOWN_ROLE` for a role that does not exist in th ### Side effects -Adding a new role makes a temporary membership permanent. The operation records a [`MEMBER_ROLE_UPDATE`](/http-api/guild-audit-logs/#audit-actions) audit entry and emits [Guild Audit Log Entry Create](/gateway/events/#guild-audit-log-entry-create) and [Guild Member Update](/gateway/events/#guild-member-update), even if the member already holds the role. An unchanged role set produces an audit entry without `changes`. +Adding a new role makes a temporary membership permanent. The operation records a [`MEMBER_ROLE_UPDATE`](/http-api/guild-audit-logs/#audit-actions) audit entry and emits [Guild Audit Log Entry Create](/gateway/events/#guild-audit-log-entry-create) and [Guild Member Update](/gateway/events/#guild-member-update). An unchanged role set still emits [Guild Member Update](/gateway/events/#guild-member-update) and records no audit entry. -The audit log response names the role only through the change list. +The audit log response names the role with the [`role_name`](/http-api/guild-audit-logs/#audit-log-options-object) option and through the change list. ### Rate limit @@ -539,7 +539,7 @@ Removes one role from a member and returns 204 with an empty body. Requires memb ### Side effects -The operation records a [`MEMBER_ROLE_UPDATE`](/http-api/guild-audit-logs/#audit-actions) audit entry and emits [Guild Audit Log Entry Create](/gateway/events/#guild-audit-log-entry-create) and [Guild Member Update](/gateway/events/#guild-member-update), even if the member did not hold the role. Removing a role does not change whether the membership is temporary. +The operation records a [`MEMBER_ROLE_UPDATE`](/http-api/guild-audit-logs/#audit-actions) audit entry and emits [Guild Audit Log Entry Create](/gateway/events/#guild-audit-log-entry-create) and [Guild Member Update](/gateway/events/#guild-member-update). A role the member did not hold still emits [Guild Member Update](/gateway/events/#guild-member-update) and records no audit entry. Removing a role does not change whether the membership is temporary. ### Rate limit diff --git a/fluxer_docs/src/content/docs/http-api/guild-moderation.mdx b/fluxer_docs/src/content/docs/http-api/guild-moderation.mdx index f22c09764..b344e020f 100644 --- a/fluxer_docs/src/content/docs/http-api/guild-moderation.mdx +++ b/fluxer_docs/src/content/docs/http-api/guild-moderation.mdx @@ -125,9 +125,9 @@ The body is optional, and so is every field in it. Fluxer reads an omitted or wh 4 Zero and an omitted field both create a permanent ban. Any value outside 60 through 63072000, which is two years, fails with `INVALID_FORMAT` -`delete_message_days` defaults to 0, so a [`MEMBER_BAN_ADD`](/http-api/guild-audit-logs/#audit-actions) entry always records `options.delete_member_days`. That option is `0` for a ban that supplied only `delete_message_seconds`. +A [`MEMBER_BAN_ADD`](/http-api/guild-audit-logs/#audit-actions) entry records `options.delete_message_seconds` when the effective interval is positive, whichever field set it. A ban that deletes nothing records no option, and the deprecated `delete_member_days` option is present only on an entry written before this field. -An omitted or null `reason` falls back to the `X-Audit-Log-Reason` value, while a supplied value that normalises to the empty string is stored as null without falling back. The header remains the audit entry reason in every case. +An omitted or null `reason` falls back to the `X-Audit-Log-Reason` value, while a supplied value that normalises to the empty string is stored as null without falling back. The audit entry reason is the header when the request sends one, and the stored ban reason otherwise. :::caution[Banning an already banned account succeeds] The second ban replaces the previous ban's details. Re-issuing can turn a permanent ban into a temporary one or extend a temporary ban. There is no conditional form. diff --git a/fluxer_docs/src/content/docs/http-api/guild-stickers.mdx b/fluxer_docs/src/content/docs/http-api/guild-stickers.mdx index 677de7c67..c9141c300 100644 --- a/fluxer_docs/src/content/docs/http-api/guild-stickers.mdx +++ b/fluxer_docs/src/content/docs/http-api/guild-stickers.mdx @@ -354,7 +354,7 @@ A non-member who names an existing sticker receives `MISSING_PERMISSIONS`. ### Side effects -The operation writes the supplied metadata, emits [Guild Stickers Update](/gateway/events/#guild-stickers-update) with the guild's complete sticker collection, and then records a [`STICKER_UPDATE`](/http-api/guild-audit-logs/#audit-actions) audit entry. Both are produced even when the submitted values match the stored ones. The audit entry then has no `changes`. +The operation writes the supplied metadata, emits [Guild Stickers Update](/gateway/events/#guild-stickers-update) with the guild's complete sticker collection, and then records a [`STICKER_UPDATE`](/http-api/guild-audit-logs/#audit-actions) audit entry. Submitted values that match the stored ones still emit the Dispatch and record no audit entry. ### Rate limit diff --git a/fluxer_docs/src/content/docs/http-api/messages.mdx b/fluxer_docs/src/content/docs/http-api/messages.mdx index 47bc2249a..964695fae 100644 --- a/fluxer_docs/src/content/docs/http-api/messages.mdx +++ b/fluxer_docs/src/content/docs/http-api/messages.mdx @@ -1291,7 +1291,7 @@ The operation deletes the caller's read-through marker, mention count, and pin a ## Delete message - + Deletes one message. Returns 204 with an empty body on success. Emits a [Message Delete](/gateway/events/#message-delete) Gateway event. @@ -1301,7 +1301,6 @@ Deletes one message. Returns 204 with an empty body on success. Emits a [Message - The author can delete their own message anywhere. - Deleting another user's guild message requires both [SEND_MESSAGES](/http-api/permissions/) and [MANAGE_MESSAGES](/http-api/permissions/), which is an [elevated permission](/http-api/permissions/#elevated-permissions). No caller can delete another user's private channel message. - A caller who holds `MANAGE_MESSAGES` with no enrolled authenticator receives 400 [`TWO_FACTOR_REQUIRED`](/http-api/errors/) in a guild whose [MFA level](/http-api/guilds/#mfa-levels) is elevated, unless they own the guild. -- The operation reads no audit reason header. ### Path parameters @@ -1330,7 +1329,7 @@ The operation permanently deletes the message, its reactions, and its attachment It emits [Message Delete](/gateway/events/#message-delete) to every session that can see the channel. When the message was pinned, it also removes the channel pin entry and emits [Channel Pins Update](/gateway/events/#channel-pins-update) with the channel's unchanged last-pin timestamp. -Every deletion in a guild channel writes one `MESSAGE_DELETE` guild audit log entry with no reason, including deletion of the caller's own message. +Every deletion in a guild channel writes one `MESSAGE_DELETE` guild audit log entry with the supplied reason, including deletion of the caller's own message. ### Rate limit @@ -1378,7 +1377,7 @@ The operation permanently deletes the stored attachment object, purges it from m ## Bulk delete messages - + Deletes from 1 through 100 messages in one guild channel. Returns 204 with an empty body on success. Emits one [Message Delete Bulk](/gateway/events/#message-delete-bulk) Gateway event. @@ -1388,7 +1387,6 @@ Deletes from 1 through 100 messages in one guild channel. Returns 204 with an em - The caller requires [MANAGE_MESSAGES](/http-api/permissions/), which is an [elevated permission](/http-api/permissions/#elevated-permissions). - A caller who holds `MANAGE_MESSAGES` with no enrolled authenticator receives 400 [`TWO_FACTOR_REQUIRED`](/http-api/errors/) in a guild whose [MFA level](/http-api/guilds/#mfa-levels) is elevated, unless they own the guild. - The operation applies no age boundary, so a message of any age can be selected. -- The operation reads no audit reason header. ### Path parameters @@ -1428,7 +1426,7 @@ The operation permanently removes every selected message, attachment, and reacti When at least one ID matched, it emits one [Message Delete Bulk](/gateway/events/#message-delete-bulk) with every requested ID to sessions that can see the channel, including an ID that matched nothing. It emits no [Channel Pins Update](/gateway/events/#channel-pins-update) and no individual [Message Delete](/gateway/events/#message-delete). -It writes one `MESSAGE_BULK_DELETE` guild audit log entry with the matched count and no reason. +It writes one `MESSAGE_BULK_DELETE` guild audit log entry with the matched count and the supplied reason. ### Rate limit @@ -1593,7 +1591,7 @@ Acknowledging pins is a separate operation, [Acknowledge pins](#acknowledge-pins ## Pin message - + Pins a `DEFAULT` or `REPLY` message. Returns 204 with an empty body on success. Emits [Message Update](/gateway/events/#message-update), [Channel Pins Update](/gateway/events/#channel-pins-update), and [Message Create](/gateway/events/#message-create) Gateway events. @@ -1630,7 +1628,7 @@ Pinning a message that is not already pinned sets its pin timestamp, advances th It emits [Message Update](/gateway/events/#message-update) for the target, [Channel Pins Update](/gateway/events/#channel-pins-update) for the channel, and [Message Create](/gateway/events/#message-create) for the system message, each to every session that can see the channel. -A guild pin also writes one `MESSAGE_PIN` guild audit log entry with no reason. Pinning an already pinned message changes nothing and emits no Dispatch. +A guild pin also writes one `MESSAGE_PIN` guild audit log entry with the supplied reason. Pinning an already pinned message changes nothing and emits no Dispatch. ### Rate limit @@ -1638,7 +1636,7 @@ A guild pin also writes one `MESSAGE_PIN` guild audit log entry with no reason. ## Unpin message - + Unpins a message. Returns 204 with an empty body on success. Emits [Message Update](/gateway/events/#message-update) and [Channel Pins Update](/gateway/events/#channel-pins-update) Gateway events. @@ -1668,7 +1666,7 @@ Unpins a message. Returns 204 with an empty body on success. Emits [Message Upda ### Side effects -Unpinning a pinned message clears its pin timestamp and emits [Message Update](/gateway/events/#message-update) and [Channel Pins Update](/gateway/events/#channel-pins-update) to every session that can see the channel. A guild unpin also writes one `MESSAGE_UNPIN` guild audit log entry with no reason. +Unpinning a pinned message clears its pin timestamp and emits [Message Update](/gateway/events/#message-update) and [Channel Pins Update](/gateway/events/#channel-pins-update) to every session that can see the channel. A guild unpin also writes one `MESSAGE_UNPIN` guild audit log entry with the supplied reason. It creates no system message. The `CHANNEL_PINNED_MESSAGE` system message the original pin created stays in the channel, and the channel's last-pin timestamp is unchanged. diff --git a/fluxer_docs/src/content/docs/http-api/permissions.mdx b/fluxer_docs/src/content/docs/http-api/permissions.mdx index c25fd3941..526468730 100644 --- a/fluxer_docs/src/content/docs/http-api/permissions.mdx +++ b/fluxer_docs/src/content/docs/http-api/permissions.mdx @@ -376,7 +376,7 @@ Every field is optional, and an omitted field leaves the stored value unchanged. ### Side effects -The operation creates a [ROLE_UPDATE](/http-api/guild-audit-logs/#audit-actions) guild audit log entry with the supplied reason and emits [Guild Role Update](/gateway/events/#guild-role-update) to every session that can see the guild. A permission change adds a [permissions_diff](/http-api/guild-audit-logs/#guild-role-change-fields) change entry recording the exact added and removed permission names. A request whose values all match the current role still emits the Dispatch and still records the entry, with no change rows in it. +The operation creates a [ROLE_UPDATE](/http-api/guild-audit-logs/#audit-actions) guild audit log entry with the supplied reason and emits [Guild Role Update](/gateway/events/#guild-role-update) to every session that can see the guild. A permission change adds a [permissions_diff](/http-api/guild-audit-logs/#guild-role-change-fields) change entry recording the exact added and removed permission names. A request whose values all match the current role still emits the Dispatch and records no entry. ### Rate limit @@ -423,7 +423,7 @@ The top-level body is an array of [role position objects](#role-position-object) ### Side effects -The operation creates one [ROLE_UPDATE](/http-api/guild-audit-logs/#audit-actions) guild audit log entry for each role whose position changed. It emits one [Guild Role Update Bulk](/gateway/events/#guild-role-update-bulk) with those roles to every session that can see the guild. A request that produces no positional change creates no audit entry and emits no Dispatch. Dense renumbering can change the numeric `position` of an unnamed role without changing its rank, and such a role is included in the Dispatch. +The operation creates one [ROLE_UPDATE](/http-api/guild-audit-logs/#audit-actions) guild audit log entry for each role that moved, under the [ordering rule](/http-api/guild-audit-logs/#guild-role-change-fields) the audit log defines. It emits one [Guild Role Update Bulk](/gateway/events/#guild-role-update-bulk) with every role whose stored position changed to every session that can see the guild. A request that produces no positional change creates no audit entry and emits no Dispatch. Dense renumbering can change the numeric `position` of an unnamed role without changing its rank, and such a role is included in the Dispatch and records no audit entry. ### Rate limit @@ -464,7 +464,7 @@ The top-level body is an array of [role hoist position objects](#role-hoist-posi ### Side effects -The operation creates one [ROLE_UPDATE](/http-api/guild-audit-logs/#audit-actions) guild audit log entry for each named role whose hoist position changed. It emits one [Guild Role Update Bulk](/gateway/events/#guild-role-update-bulk) with the changed roles to every session that can see the guild. Setting the current positions again changes nothing, creates no audit entry, and emits no Dispatch. +The operation creates one [ROLE_UPDATE](/http-api/guild-audit-logs/#audit-actions) guild audit log entry for each named role that moved in the member list order, under the [ordering rule](/http-api/guild-audit-logs/#guild-role-change-fields) the audit log defines, and for each changed role that is not hoisted. It emits one [Guild Role Update Bulk](/gateway/events/#guild-role-update-bulk) with every role whose hoist position changed to every session that can see the guild. Setting the current positions again changes nothing, creates no audit entry, and emits no Dispatch. ### Rate limit @@ -502,7 +502,7 @@ The request has no body. ### Side effects -The operation creates one [ROLE_UPDATE](/http-api/guild-audit-logs/#audit-actions) guild audit log entry for each role whose hoist position is cleared. It emits one [Guild Role Update Bulk](/gateway/events/#guild-role-update-bulk) with those roles to every session that can see the guild. When no role held a hoist position, no audit entry is created and no Dispatch is emitted. +The operation creates one [ROLE_UPDATE](/http-api/guild-audit-logs/#audit-actions) guild audit log entry for each cleared role that moved in the member list order, under the [ordering rule](/http-api/guild-audit-logs/#guild-role-change-fields) the audit log defines, and for each cleared role that is not hoisted. It emits one [Guild Role Update Bulk](/gateway/events/#guild-role-update-bulk) with every cleared role to every session that can see the guild. When no role held a hoist position, no audit entry is created and no Dispatch is emitted. ### Rate limit diff --git a/fluxer_docs/src/content/docs/http-api/premium.mdx b/fluxer_docs/src/content/docs/http-api/premium.mdx index 07924770b..1b466d580 100644 --- a/fluxer_docs/src/content/docs/http-api/premium.mdx +++ b/fluxer_docs/src/content/docs/http-api/premium.mdx @@ -852,7 +852,7 @@ A deployment that configures no Visionary guild or no Visionary role returns 400 A new membership sends [Guild Create](/gateway/events/#guild-create) with complete guild state to the joining account and [Guild Member Add](/gateway/events/#guild-member-add) to the guild. It also creates a join system message and sends [Message Create](/gateway/events/#message-create) unless the guild has no system channel or suppresses join notifications. -A new or existing member then receives the Visionary role, which records a `MEMBER_ROLE_UPDATE` guild audit log entry attributed to the system user and emits [Guild Member Update](/gateway/events/#guild-member-update). An account already holding the role causes no role change. Billing state is unchanged. +A new or existing member then receives the Visionary role, which records a `MEMBER_ROLE_UPDATE` guild audit log entry attributed to the system user and emits [Guild Member Update](/gateway/events/#guild-member-update). An account already holding the role causes no role change and records no audit entry. Billing state is unchanged. ### Rate limit diff --git a/knip.json b/knip.json index 9ac8a7eb2..bf03b3907 100644 --- a/knip.json +++ b/knip.json @@ -31,6 +31,7 @@ "packages/schema/src/domains/admin/AdminUserSchemas.ts": ["exports"], "packages/schema/src/domains/admin/VoiceNoiseSuppressionSchemas.ts": ["exports"], "packages/schema/src/domains/geolocation/GeolocationSchemas.ts": ["exports"], + "packages/schema/src/domains/guild/GuildAuditLogSchemas.ts": ["exports"], "pnpm-workspace.yaml": ["catalog"] }, "workspaces": { diff --git a/packages/schema/src/domains/admin/AdminSchemas.ts b/packages/schema/src/domains/admin/AdminSchemas.ts index 80649b547..f4155e27e 100644 --- a/packages/schema/src/domains/admin/AdminSchemas.ts +++ b/packages/schema/src/domains/admin/AdminSchemas.ts @@ -27,6 +27,10 @@ import { ExperimentDeliveryConfigResponse, ExperimentDeliveryConfigUpdateRequest, } from '@fluxer/schema/src/domains/experiment/ExperimentSchemas'; +import { + GuildActivityLogPresentationConfigResponse, + GuildActivityLogPresentationConfigUpdateRequest, +} from '@fluxer/schema/src/domains/experiment/GuildActivityLogPresentationSchemas'; import { MessageHoverTrackingConfigResponse, MessageHoverTrackingConfigUpdateRequest, @@ -641,6 +645,7 @@ export const InstanceConfigResponse = z.object({ sso: SsoConfigResponse, gateway_rollout: GatewayRolloutConfigResponse, voice_noise_suppression: VoiceNoiseSuppressionConfigResponse, + guild_activity_log_presentation: GuildActivityLogPresentationConfigResponse, experiment_delivery: ExperimentDeliveryConfigResponse, message_hover_tracking: MessageHoverTrackingConfigResponse, message_keyboard_focus: MessageKeyboardFocusConfigResponse, @@ -680,6 +685,7 @@ const InstancePolicyUpdateSchema = z.object({ export const InstanceConfigUpdateRequest = z.object({ gateway_rollout: GatewayRolloutConfigUpdateRequest.nullish(), voice_noise_suppression: VoiceNoiseSuppressionConfigUpdateRequest.nullish(), + guild_activity_log_presentation: GuildActivityLogPresentationConfigUpdateRequest.nullish(), experiment_delivery: ExperimentDeliveryConfigUpdateRequest.nullish(), message_hover_tracking: MessageHoverTrackingConfigUpdateRequest.nullish(), message_keyboard_focus: MessageKeyboardFocusConfigUpdateRequest.nullish(), diff --git a/packages/schema/src/domains/experiment/ExperimentSchemas.ts b/packages/schema/src/domains/experiment/ExperimentSchemas.ts index 0896e844e..4e9389fbc 100644 --- a/packages/schema/src/domains/experiment/ExperimentSchemas.ts +++ b/packages/schema/src/domains/experiment/ExperimentSchemas.ts @@ -8,6 +8,10 @@ import { BlockedMessageGroupsAssignmentResponse, INERT_BLOCKED_MESSAGE_GROUPS_ASSIGNMENT, } from '@fluxer/schema/src/domains/experiment/BlockedMessageGroupsSchemas'; +import { + GuildActivityLogPresentationAssignmentResponse, + INERT_GUILD_ACTIVITY_LOG_PRESENTATION_ASSIGNMENT, +} from '@fluxer/schema/src/domains/experiment/GuildActivityLogPresentationSchemas'; import { INERT_MESSAGE_HOVER_TRACKING_ASSIGNMENT, MessageHoverTrackingAssignmentResponse, @@ -57,6 +61,7 @@ const ExperimentAssignmentsSchema = z.object({ message_hover_tracking: MessageHoverTrackingAssignmentResponse.optional(), message_keyboard_focus: MessageKeyboardFocusAssignmentResponse.optional(), blocked_message_groups: BlockedMessageGroupsAssignmentResponse.optional(), + guild_activity_log_presentation: GuildActivityLogPresentationAssignmentResponse.optional(), }); export const ExperimentAssignmentsResponse = z.object({ @@ -96,3 +101,9 @@ export function readBlockedMessageGroupsAssignment( ): BlockedMessageGroupsAssignmentResponse { return response.assignments.blocked_message_groups ?? INERT_BLOCKED_MESSAGE_GROUPS_ASSIGNMENT; } + +export function readGuildActivityLogPresentationAssignment( + response: ExperimentAssignmentsResponse, +): GuildActivityLogPresentationAssignmentResponse { + return response.assignments.guild_activity_log_presentation ?? INERT_GUILD_ACTIVITY_LOG_PRESENTATION_ASSIGNMENT; +} diff --git a/packages/schema/src/domains/experiment/GuildActivityLogPresentationSchemas.ts b/packages/schema/src/domains/experiment/GuildActivityLogPresentationSchemas.ts new file mode 100644 index 000000000..01fad2694 --- /dev/null +++ b/packages/schema/src/domains/experiment/GuildActivityLogPresentationSchemas.ts @@ -0,0 +1,41 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {createClientBehaviorExperiment} from '@fluxer/schema/src/domains/experiment/ClientBehaviorExperiment'; +import type {z} from 'zod'; + +const guildActivityLogPresentation = createClientBehaviorExperiment({ + defaultRolloutSalt: 'guild-activity-log-presentation-v1', +}); + +export const GuildActivityLogPresentationConfigSchema = guildActivityLogPresentation.ConfigSchema; + +export type GuildActivityLogPresentationConfig = z.infer; + +export const DEFAULT_GUILD_ACTIVITY_LOG_PRESENTATION_CONFIG: GuildActivityLogPresentationConfig = + guildActivityLogPresentation.DEFAULT_CONFIG; + +export const GuildActivityLogPresentationConfigUpdateRequest = guildActivityLogPresentation.ConfigUpdateRequest; + +export type GuildActivityLogPresentationConfigUpdateRequest = z.infer< + typeof GuildActivityLogPresentationConfigUpdateRequest +>; + +export const GuildActivityLogPresentationConfigResponse = guildActivityLogPresentation.ConfigSchema; + +export type GuildActivityLogPresentationConfigResponse = GuildActivityLogPresentationConfig; + +export const GuildActivityLogPresentationAssignmentResponse = guildActivityLogPresentation.AssignmentResponse; + +export type GuildActivityLogPresentationAssignmentResponse = z.infer< + typeof GuildActivityLogPresentationAssignmentResponse +>; + +export const INERT_GUILD_ACTIVITY_LOG_PRESENTATION_ASSIGNMENT: GuildActivityLogPresentationAssignmentResponse = + guildActivityLogPresentation.INERT_ASSIGNMENT; + +export function resolveGuildActivityLogPresentationAssignment( + config: GuildActivityLogPresentationConfig, + userId: string, +): GuildActivityLogPresentationAssignmentResponse { + return guildActivityLogPresentation.resolveAssignment(config, userId); +} diff --git a/packages/schema/src/domains/guild/GuildAuditLogSchemas.ts b/packages/schema/src/domains/guild/GuildAuditLogSchemas.ts index 38a65729a..fe0c92942 100644 --- a/packages/schema/src/domains/guild/GuildAuditLogSchemas.ts +++ b/packages/schema/src/domains/guild/GuildAuditLogSchemas.ts @@ -35,13 +35,27 @@ export type AuditLogChange = z.infer; const AuditLogOptionsSchema = z.object({ channel_id: z.string().optional().describe('Channel ID for relevant actions'), count: z.number().optional().describe('Count of items affected'), - delete_member_days: z.string().optional().describe('Number of days of messages to delete on member ban'), + delete_member_days: z + .string() + .optional() + .describe( + 'Deprecated. Whole days of messages deleted, written only by bans recorded before delete_message_seconds', + ), + delete_message_seconds: z + .number() + .optional() + .describe("Seconds of the banned user's messages that the ban deleted, present only when positive"), id: z.string().optional().describe('ID of the affected entity'), integration_type: z.number().optional().describe('Type of integration'), message_id: z.string().optional().describe('Message ID for relevant actions'), members_removed: z.number().optional().describe('Number of members removed'), - role_name: z.string().optional().describe('Name of the role'), - type: z.number().optional().describe('Type identifier'), + role_name: z.string().optional().describe('Name of the role when the entry was written'), + type: z + .number() + .optional() + .describe( + 'Channel type for CHANNEL_CREATE, CHANNEL_UPDATE and CHANNEL_DELETE. Overwrite target type (0 role, 1 member) for CHANNEL_OVERWRITE_*', + ), inviter_id: z.string().optional().describe('ID of the user who created the invite'), max_age: z.number().optional().describe('Maximum age of the invite in seconds'), max_uses: z.number().optional().describe('Maximum number of uses for the invite'), @@ -56,7 +70,12 @@ export const GuildAuditLogEntryResponse = z.object({ action_type: AuditLogActionTypeSchema, user_id: SnowflakeStringType.nullish().describe('The user ID of the user who performed the action'), target_id: z.string().nullish().describe('The ID of the affected entity (user, channel, role, invite code, etc.)'), - reason: z.string().optional().describe('The reason provided for the action'), + reason: z + .string() + .optional() + .describe( + 'The audit log reason. For bans and timeouts without an X-Audit-Log-Reason header this is the reason sent in the request body', + ), options: AuditLogOptionsSchema.optional().describe('Additional options depending on action type'), changes: z.array(AuditLogChangeSchema).optional().describe('Changes made to the target'), }); diff --git a/packages/schema/src/domains/guild/tests/GuildAuditLogSchemas.test.ts b/packages/schema/src/domains/guild/tests/GuildAuditLogSchemas.test.ts new file mode 100644 index 000000000..5caa5f759 --- /dev/null +++ b/packages/schema/src/domains/guild/tests/GuildAuditLogSchemas.test.ts @@ -0,0 +1,54 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {AuditLogActionType} from '@fluxer/constants/src/AuditLogActionType'; +import {GuildAuditLogEntryResponse} from '@fluxer/schema/src/domains/guild/GuildAuditLogSchemas'; +import {describe, expect, it} from 'vitest'; + +function entryWith(fields: Record): Record { + return { + id: '1420000000000000100', + action_type: AuditLogActionType.MEMBER_BAN_ADD, + user_id: '1420000000000000001', + target_id: '1420000000000000002', + ...fields, + }; +} + +describe('GuildAuditLogEntryResponse', () => { + it('parses delete_message_seconds as a number', () => { + const parsed = GuildAuditLogEntryResponse.parse(entryWith({options: {delete_message_seconds: 3600}})); + expect(parsed.options).toEqual({delete_message_seconds: 3600}); + }); + + it('rejects delete_message_seconds sent as a string', () => { + const result = GuildAuditLogEntryResponse.safeParse(entryWith({options: {delete_message_seconds: '3600'}})); + expect(result.success).toBe(false); + }); + + it('parses the legacy delete_member_days string', () => { + const parsed = GuildAuditLogEntryResponse.parse(entryWith({options: {delete_member_days: '7'}})); + expect(parsed.options).toEqual({delete_member_days: '7'}); + }); + + it('parses a permissions_diff change value', () => { + const changes = [ + {key: 'permissions', old_value: '1024', new_value: '3072'}, + {key: 'permissions_diff', new_value: {added: ['SEND_MESSAGES'], removed: []}}, + ]; + const parsed = GuildAuditLogEntryResponse.parse( + entryWith({action_type: AuditLogActionType.ROLE_UPDATE, options: {role_name: 'Moderators'}, changes}), + ); + expect(parsed.changes).toEqual(changes); + expect(parsed.options).toEqual({role_name: 'Moderators'}); + }); + + it('strips unknown option keys', () => { + const parsed = GuildAuditLogEntryResponse.parse( + entryWith({ + action_type: AuditLogActionType.MEMBER_UPDATE, + options: {channel_id: '1420000000000000003', timeout_reason: 'raw', future_option: 1}, + }), + ); + expect(parsed.options).toEqual({channel_id: '1420000000000000003'}); + }); +}); diff --git a/packages/schema/src/domains/tests/GuildActivityLogPresentationSchemas.test.ts b/packages/schema/src/domains/tests/GuildActivityLogPresentationSchemas.test.ts new file mode 100644 index 000000000..d85fef340 --- /dev/null +++ b/packages/schema/src/domains/tests/GuildActivityLogPresentationSchemas.test.ts @@ -0,0 +1,98 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {EXPERIMENT_BUCKET_RESOLUTION, experimentBucket} from '@fluxer/schema/src/domains/experiment/ExperimentBucket'; +import { + DEFAULT_GUILD_ACTIVITY_LOG_PRESENTATION_CONFIG, + GuildActivityLogPresentationConfigSchema, + resolveGuildActivityLogPresentationAssignment, +} from '@fluxer/schema/src/domains/experiment/GuildActivityLogPresentationSchemas'; +import {describe, expect, it} from 'vitest'; + +const USER_ID = '1485064866382176262'; +const OTHER_USER_ID = '1485064866382176263'; + +function config(overrides: Partial> = {}) { + return GuildActivityLogPresentationConfigSchema.parse({...overrides}); +} + +describe('guild activity log presentation configuration', () => { + it('defaults to a disabled rollout that targets nobody', () => { + expect(DEFAULT_GUILD_ACTIVITY_LOG_PRESENTATION_CONFIG).toEqual({ + enabled: false, + config_version: 0, + rollout_basis_points: 0, + rollout_salt: 'guild-activity-log-presentation-v1', + included_user_ids: [], + excluded_user_ids: [], + }); + }); + + it('refuses a rollout wider than the bucket resolution', () => { + expect(() => config({rollout_basis_points: EXPERIMENT_BUCKET_RESOLUTION + 1})).toThrow(); + }); + + it('refuses a target that is not a snowflake', () => { + expect(() => config({included_user_ids: ['not-a-snowflake']})).toThrow(); + }); +}); + +describe('guild activity log presentation resolution', () => { + it('reports the stored revision while the rollout is disabled', () => { + const assignment = resolveGuildActivityLogPresentationAssignment(config({config_version: 3}), USER_ID); + expect(assignment).toEqual({enabled: false, config_version: 3, user_targeted: false, source: null}); + }); + + it('targets an allowlisted account regardless of its bucket', () => { + const assignment = resolveGuildActivityLogPresentationAssignment( + config({enabled: true, included_user_ids: [USER_ID]}), + USER_ID, + ); + expect(assignment).toEqual({enabled: true, config_version: 0, user_targeted: true, source: 'user_rule'}); + }); + + it('keeps a blocklisted account out of a full rollout', () => { + const assignment = resolveGuildActivityLogPresentationAssignment( + config({ + enabled: true, + rollout_basis_points: EXPERIMENT_BUCKET_RESOLUTION, + excluded_user_ids: [USER_ID], + }), + USER_ID, + ); + expect(assignment).toEqual({enabled: true, config_version: 0, user_targeted: false, source: null}); + }); + + it('prefers the blocklist over the allowlist', () => { + const assignment = resolveGuildActivityLogPresentationAssignment( + config({enabled: true, included_user_ids: [USER_ID], excluded_user_ids: [USER_ID]}), + USER_ID, + ); + expect(assignment.user_targeted).toBe(false); + }); + + it('targets an account whose bucket falls inside the rollout', () => { + const salt = DEFAULT_GUILD_ACTIVITY_LOG_PRESENTATION_CONFIG.rollout_salt; + const bucket = experimentBucket(USER_ID, salt); + const inside = resolveGuildActivityLogPresentationAssignment( + config({enabled: true, rollout_basis_points: bucket + 1}), + USER_ID, + ); + const outside = resolveGuildActivityLogPresentationAssignment( + config({enabled: true, rollout_basis_points: bucket}), + USER_ID, + ); + expect(inside).toEqual({enabled: true, config_version: 0, user_targeted: true, source: 'canary'}); + expect(outside).toEqual({enabled: true, config_version: 0, user_targeted: false, source: null}); + }); + + it('separates two accounts under the same salt', () => { + const salt = DEFAULT_GUILD_ACTIVITY_LOG_PRESENTATION_CONFIG.rollout_salt; + expect(experimentBucket(USER_ID, salt)).not.toBe(experimentBucket(OTHER_USER_ID, salt)); + }); + + it('moves an account when the salt changes', () => { + expect(experimentBucket(USER_ID, 'guild-activity-log-presentation-v1')).not.toBe( + experimentBucket(USER_ID, 'guild-activity-log-presentation-v2'), + ); + }); +});